Hallo Zusammen,
ich habe ein Problem und hoffe ihr könnt mir helfen.
Ich möchte in meiner Android App einem einem Activity (Activity_Passwort_Abfragen) eine Passwort/Pin-Abfrage implementieren. Über die Action Bar öffnet sich ein zweites Activity (Activity_Passwort_Setzen) in dem das Passwort gesetzt werden kann.
Ich brauche hierfür etwas was auch nach dem Neustart der App seinen Wert behält. Hier bin ich auf die SharedPreferences gestoßen.
Hier die Passwort Abfrage:
public class Activity_Passwort_Abfragen extends AppCompatActivity {
SharedPreferences pins_pref = null;
EditText pin_eingabe = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.Activity_Passwort_Abfragen);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
pin_eingabe = (EditText) findViewById(R.id.et_pin_eingabe);
pins_pref = getApplicationContext().getSharedPreferences("UserPin", Context.MODE_PRIVATE);
SharedPreferences.Editor edit = pins_pref.edit();
edit.putString("pin", "0000");
edit.commit();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_change_pin) {
//Einstellungen öffnen:
startActivity(new Intent(this, Activity_Passwort_Setzen.class));
return true;
}
else if (id == R.id.home) {
// Zurück zum vorherigen Bildschirm
this.finish();
return true;
}
Alles anzeigen
In der zweiten Activity soll nun das Passwort durch Knopfdruckt geändert werden:
edit.putString("user_pin", user_pin);
Jedoch wird der Pin jedesmal beim Starten der App überschrieben, da er immer auf den default werd durch die oNCreate-Methode gesetzt wird. Wie kann ich dieses Problem umgehen?
Gibt es eventuell andere Ansätze?
Vielen Dank für die Hilfe
Tobi