Alle notwendigen Importe werden hinzugefügt.SharedPreferences Code funktioniert nicht wie vorgesehen
public class MainActivity extends AppCompatActivity {
SharedPreferences preferences;
SharedPreferences.Editor editor;
public int i;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
preferences = getSharedPreferences("MyPrefs", MODE_PRIVATE);
editor = preferences.edit();
Während ersten Mal booten die Meldung „Zum ersten Mal boot“ erscheint, sollte aber nicht während des nächsten Mal angezeigt, anstatt den Iterator i, die in sharedPreferences gespeichert wurde, erscheinen soll.
try{
i = preferences.getInt("iterator", 0);
Toast.makeText(getApplicationContext(), i, Toast.LENGTH_SHORT).show();
}catch(Exception e){
Toast.makeText(MainActivity.this, "First time boot", Toast.LENGTH_SHORT).show();
}
final TextView date = (TextView) (findViewById(R.id.textView));
final Calendar c = Calendar.getInstance();
date.setText(DateFormat.getDateFormat(this).format(c.getTime()));
final Button mainBtn = (Button) findViewById(R.id.mainBtn);
final Button exit = (Button) findViewById(R.id.exit);
mainBtn.setText("Clock In");
mainBtn.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
if(mainBtn.getText() == "Clock In"){
mainBtn.setText("Clock Out");
}else{mainBtn.setText("Clock In");}
String s = new SimpleDateFormat("yyyy: MM: dd HH: mm: ss").format(Calendar.getInstance().getTime());
Meine Idee ist, dass eine Taste beim Klicken, würde ein Zeitstempel in die sharedPreferences-Datei gespeichert werden, die später zugegriffen werden können.
editor.putString("Time "+ i, s);
i++;
editor.putInt("iterator", i);
}
});
Ich habe erst vor kurzem dieses, so dass, wenn Sie die Exit-Button klicken, wird alles, was gerettet werden würde in der sharedPreferences Datei gesetzt wurde. (Früher war die Zeile editor.commit() in der mainBtn onClickListener).
exit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editor.commit();
finish();
}
});
}
Das Problem ist, dass die App beim Verlassen und zur Neubelebung es, wird die App nicht auf die gespeicherten Daten abrufen, die in der sharedPreferences Datei gespeichert werden sollten zu, sondern es sagt nur „Zum ersten Mal boote“ jedes Mal .. Ich bin extrem neu in der Programmierung und habe versucht, dieses Problem auf mehrere Arten zu überwinden, nur um das gleiche Problem zu erreichen. Hilfe!