我正在尝试将字符串值的首选项设置为:
//onCreate
if(name==null){
setprefer();
}
else{
getpref();
}
private void setprefer() {
et1 = (EditText) findViewById(R.id.editText1);
b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
s = et1.getText().toString();
if(s.matches(""))
{
//wait!!
Toast.makeText(Home.this, "Enter your name", Toast.LENGTH_SHORT).show();
}
else{
setpref(s);
Intent i = new Intent(Home.this, Homescreen.class);
i.putExtra("name", s);
startActivity(i);
Home.this.finish();
}
}
});
}
private void setpref(String name) {
SharedPreferences pref = this.getSharedPreferences("prefkey", Context.MODE_PRIVATE);
Editor editor = pref.edit();
editor.putString("key", name);
editor.commit();
}
private void getpref() {
SharedPreferences prefs = this.getSharedPreferences("prefkey", Context.MODE_PRIVATE);
s = prefs.getString("key", name);
Intent i = new Intent(Home.this, Homescreen.class);
i.putExtra("name", name);
startActivity(i);
Home.this.finish();
}
我正在使用setprefer()方法设置首选项,但是每次我开始活动时,它都会询问我已经存储在首选项中的名称。不知何故,我无法在上面的代码中获取保存的prefereces。请提出解决方案。
这取决于name
您执行此操作的时间:
if(name==null){
setprefer();
}
else{
getpref();
}
但是由于在检查之前您没有为name
变量分配任何值,因此它为null,因此setPrefer()
每次都被调用。您需要从SharedPrefs中获取值并分配给,name
然后再检查name == null
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句