[英]Android SharedPreferences
I am not sure why my code isn't working, following the android developer guide this should work. 我不确定为什么我的代码不起作用,遵循Android开发人员指南这应该工作。 I assume that it is because I don't have a preferences file created, I am not sure how to go about that.
我认为这是因为我没有创建首选项文件,我不知道如何去做。 Could someone take a look and see if I have written everything correctly?
有人可以看一看,看看我是否写得正确吗?
public static final String PREFS_NAME = "TestPrefs";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void Save(View v){
SharedPreferences settings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
final EditText s = (EditText) findViewById(R.id.editText1);
settings.edit().putString("TBox1", s.getText().toString());
settings.edit().commit();
}
public void Open(View v){
SharedPreferences settings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
final EditText s = (EditText) findViewById(R.id.editText1);
String newS = settings.getString("TBox1", "");
s.setText(newS);
}
You have to commit()
on the same Editor. 你必须在同一个编辑器上
commit()
。 Commiting on another object as you have done means that the previous putString()
gets lost. 像你所做的那样提交另一个对象意味着先前的
putString()
会丢失。 This means change 这意味着改变
settings.edit().putString("TBox1", s.getText().toString());
settings.edit().commit();
to 至
settings.edit().putString("TBox1", s.getText().toString()).commit();
Of course, if you have more than one thing to edit, you can keep a reference to your editor: 当然,如果您要编辑多个内容,可以保留对编辑器的引用:
Eg: 例如:
SharedPreferences.Editor editor = settings.edit();
editor.putString("key1", "value1");
editor.putString("key2", "value2");
editor.commit();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.