Ich habe eine IntroActivity
, wo ich einen Wert speichern, die von einem EditText gespeichert wird, in einer gemeinsamen Pref.SharedPreferences nicht durch Android App
In meinem SettingsActivity
ich versuche, diesen Wert zu bearbeiten, aber auch wenn ich den freigegebenen Einstellungen Wert mit dem Schlüssel, den ich gerade bearbeitet habe, zeigt es immer noch den alten Wert. Was mache ich falsch? Hier
ist die IntroActivity
public class IntroActivity extends Activity {
String PREF = "MyPrefs";
Button mDone;
EditText mTemperature;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intro);
mDone = (Button) findViewById(R.id.done);
mTemperature = (EditText) findViewById(R.id.temperature);
mDone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int temperature = Integer.parseInt(mTemperature.getText().toString());
SharedPreferences preferences = getSharedPreferences(PREF, Context.MODE_PRIVATE);
SharedPreferences.Editor edit = preferences.edit();
edit.putInt("sweater", temperature);
edit.commit();
Intent intent = new Intent(IntroActivity.this, MainActivity.class);
startActivity(intent);
}
});
}
}
Hier ist die SettingsActivity
public class SettingsActivity extends ActionBarActivity {
Button mDone;
EditText mTemperature;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
mDone = (Button) findViewById(R.id.done);
mTemperature = (EditText) findViewById(R.id.temperature);
mDone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences preferences = getSharedPreferences("sweater", 0);
SharedPreferences.Editor edit = preferences.edit();
int temp = preferences.getInt("sweater", 0);
int updateSweater = Integer.parseInt(mTemperature.getText().toString());
edit.remove("sweater");
edit.putInt("sweater", updateSweater);
boolean saved = edit.commit();
preferences.getInt("sweater", 0);
Toast.makeText(SettingsActivity.this, "Sweater Weather Updated", Toast.LENGTH_SHORT).show();
Map<String, ?> map = preferences.getAll();
for(Map.Entry<String,?> entry : map.entrySet()){
Log.d("map values",entry.getKey() + ": " +
entry.getValue().toString());
}
Intent intent = new Intent(SettingsActivity.this, MainActivity.class);
startActivity(intent);
}
});
}
}