SharedPreferences 不会节省价值
SharedPreferences wont save value
final SharedPreferences sp = getSharedPreferences("birthday", 0);
final SharedPreferences sp2 = getSharedPreferences("name", 0);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = sp.edit();
editor.putString("birthday", birthday.getText().toString());
editor.apply();
SharedPreferences.Editor editor2 = sp2.edit();
editor2.putString("name", name.getText().toString());
editor2.apply();
Toast.makeText(SettingsActivity.this, "Changes saved.", Toast.LENGTH_SHORT).show();
}
});
生日值保存得很好,但名字没有。为什么?
替换
editor.apply();
与
editor.commit();
在 docs
中阅读更多相关信息
试试这个:
SharedPreferences.Editor editor = sp.edit();
editor.putString("birthday", birthday.getText().toString());
editor.putString("name", name.getText().toString());
editor.commit();
这是我在我的应用程序中存储值时的做法:
save.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("birthday", birthday.getText().toString());
editor.putString("name", name.getText().toString());
editor.apply();
}
});
我在保存到首选项时遇到的问题是我如何实际获得 SharedPreferences 的实例;
能否分享一下你用来实例化sp的代码?
希望对您有所帮助!
final SharedPreferences sp = getSharedPreferences("data", 0);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = sp.edit();
editor.putString("birthday", birthday.getText().toString());
editor.putString("name", name.getText().toString());
editor.commit();
Toast.makeText(SettingsActivity.this, "Changes saved.", Toast.LENGTH_SHORT).show();
}
});
问题已解决!必须只使用一个 SharedPreferences 实例而不是两个。
final SharedPreferences sp = getSharedPreferences("birthday", 0);
final SharedPreferences sp2 = getSharedPreferences("name", 0);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = sp.edit();
editor.putString("birthday", birthday.getText().toString());
editor.apply();
SharedPreferences.Editor editor2 = sp2.edit();
editor2.putString("name", name.getText().toString());
editor2.apply();
Toast.makeText(SettingsActivity.this, "Changes saved.", Toast.LENGTH_SHORT).show();
}
});
生日值保存得很好,但名字没有。为什么?
替换
editor.apply();
与
editor.commit();
在 docs
中阅读更多相关信息试试这个:
SharedPreferences.Editor editor = sp.edit();
editor.putString("birthday", birthday.getText().toString());
editor.putString("name", name.getText().toString());
editor.commit();
这是我在我的应用程序中存储值时的做法:
save.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("birthday", birthday.getText().toString());
editor.putString("name", name.getText().toString());
editor.apply();
}
});
我在保存到首选项时遇到的问题是我如何实际获得 SharedPreferences 的实例;
能否分享一下你用来实例化sp的代码?
希望对您有所帮助!
final SharedPreferences sp = getSharedPreferences("data", 0);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = sp.edit();
editor.putString("birthday", birthday.getText().toString());
editor.putString("name", name.getText().toString());
editor.commit();
Toast.makeText(SettingsActivity.this, "Changes saved.", Toast.LENGTH_SHORT).show();
}
});
问题已解决!必须只使用一个 SharedPreferences 实例而不是两个。