Я новичок в андроиде, и сегодня я хотел реализовать некоторые SharedPreferences.Android SharedPreferences успешно не работает
Вот мой код: (или Image если НУ нравится больше)
@Override
public void onCreate(Bundle savedInstanceState) {
// SOME CODE HERE
// Initialize Shared Preferences
final SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("MyData", Context.MODE_PRIVATE);
sharedPreferences.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
logMsg(sharedPreferences.toString() + "=>" + s + "=>" + sharedPreferences.getString(s, ""));
}
});
final EditText etId = (EditText) findViewById(R.id.etId);
final EditText etValue = (EditText) findViewById(R.id.etValue);
Button btnSave = (Button) findViewById(R.id.btn_save);
btnSave.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// set Data
logMsg("Id= " + etId.getText().toString() + " Value= " + etValue.getText().toString());
sharedPreferences.edit().putString(etId.getText().toString(), etValue.getText().toString());
if (sharedPreferences.edit().commit()){
logMsg("Success");
}else {
logMsg("Fail");
}
// get Data
logMsg("Id= '" + etId.getText().toString() + "' Value= " + sharedPreferences.getString(etId.getText().toString(), "No Value"));
}
});
//SOME CODE HERE
}
Проблема заключается в том, что после нажатия btn_save журнала говорит Успех на sharedPreferences.edit().commit()
но после этого я не получить какую-либо данные с getString()
(соответственно я извлекаю значение dafault, что в моем случае «Нет значения»).
У вас есть идеи, что не так? Нужно ли отменить регистрацию SharedPreferences.OnSharedPreferenceChangeListener?
Спасибо.
'успешно не работает' звучит как ** ерунда **, для меня ... –
@ Rotwang вот почему я попросил вас, ребята, ответить :) –
Кстати, есть вещь, называемая debug, которая точно говорит вам, что и где ваша проблема. сначала выполните отладку и проверьте, в чем проблема. надеюсь, что вы не против – Umair