J'ai ce code où j'essaie d'enregistrer des données persistantes en utilisant des préférences partagées dans l'activité "InitialPreferences", l'activité "StartScreen" recherche ensuite les préférences sauvegardées lorsque l'application démarre et dirige utilisateur aux "InitialPreferences" ou "MainActivity". Mon problème est que les données ne sont pas enregistrées et je ne peux pas voir le problème, quelqu'un peut-il me diriger vers le problème et me montrer ce que j'ai fait mal?Préférences partagées ne sauvegardant pas ou ne chargeant pas de données
Merci
activité EcrAccueil:
public class StartScreen extends Activity {
CountDownTimer waitTimer;
public static final String APP_PREFERENCES = "AppPrefs";
SharedPreferences settings;
SharedPreferences.Editor prefEditor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start_screen);
settings = getSharedPreferences(APP_PREFERENCES, MODE_PRIVATE);
// prefEditor = settings.edit();
waitTimer = new CountDownTimer(5000, 300) {
public void onTick(long millisUntilFinished) {
//called every 300 milliseconds, which could be used to
//send messages or some other action
}
public void onFinish() {
//After 5000 milliseconds (5 sec) finish current
//if you would like to execute something when time finishes
getPreferences();
}
}.start();
}
private void getPreferences() {
// TODO Auto-generated method stub
String UserName = settings.getString("UserName", "");
if (UserName != null) {
// the key does not exist
Intent intent=new Intent(StartScreen.this,InitialPreferences.class);
startActivity(intent);
}
if (UserName.equals("UserName")){
// handle the value
Intent intent=new Intent(StartScreen.this,MainActivity.class);
startActivity(intent);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.start_screen, menu);
return true;
}
}
activité InitialPreferences:
public class InitialPreferences extends Activity implements OnClickListener {
EditText editText1;
Button button1;
TextView textView1;
RadioGroup radioGroup;
RadioButton radioPosistionButton;
public static final String APP_PREFERENCES = "AppPrefs";
SharedPreferences settings;
SharedPreferences.Editor prefEditor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.initial_preferences);
textView1 = (TextView)findViewById(R.id.textView1);
editText1 = (EditText)findViewById(R.id.editText1);
button1 = (Button)findViewById(R.id.button1);
radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
settings = getSharedPreferences(APP_PREFERENCES, MODE_PRIVATE);
prefEditor = settings.edit();
LoadPreferences();
}
@Override
public void onClick(View v) {
SavePreferences();
LoadPreferences();
}
private void SavePreferences() {
// TODO Auto-generated method stub
String Uname_input = editText1.getText().toString();
int checkedButton = radioGroup.getCheckedRadioButtonId();
prefEditor.clear();
prefEditor.putString("UserName", Uname_input);
prefEditor.putInt("posistion", checkedButton);
prefEditor.apply();
prefEditor.commit();
}
private void LoadPreferences(){
String UserName = settings.getString("UserName", "");
editText1.setText(UserName + "");
Toast.makeText(getApplicationContext(), UserName, Toast.LENGTH_SHORT).show();
}
}
Avez-vous déjà vu l'activité InitialPreferences? Ça ne semble pas vouloir. –
Je fais ... pourquoi ne le ferais-je pas? –
J'ai d'abord mal lu votre conditionnel, mais ma réponse ci-dessous s'applique toujours. –