我的活动包含一个EditText,它将user的名称作为String inout然后我尝试通过SharedPreferences保存它,这样当我的活动再次打开时,我可以回调我的字符串并将其设置为我的EditText中的Hint。
我的代码: -
SharedPreferences prefs = getSharedPreferences("Key",0);
final EditText editname = (EditText)findViewById(R.id.editText1);
editname.setGravity(Gravity.CENTER);
nameofuser = prefs.getString("name", "Your Name!");
editname.setHint(nameofuser);
editname.setOnEditorActionListener(new OnEditorActionListener()
{
public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2)
{
if(arg1==EditorInfo.IME_ACTION_DONE)
{
nameofuser = editname.getText().toString();
Editor e=prefs.edit();
e.putString("name", nameofuser);
e.commit();
editname.setCursorVisible(false);
}
return false;
}
});
nameofuser 是字符串类型类变量。
现在我想要的是: -
我得到的是什么: - 一切正常,但每当我重新打开程序时,我在edittext上都会显示空白,即那里没有显示任何内容。
答案 0 :(得分:1)
我希望这会对你有所帮助
private void SavePreferences(String key, String value) {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
}
private void deletePreferences(String key) {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.remove(key);
editor.commit();
}
private void clearAllPreferences() {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.commit();
}
private void showPreferences(String key){
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
String savedPref = sharedPreferences.getString(key, "");
mOutputView.setText(savedPref);
}
答案 1 :(得分:0)
试试这种方式,
if(arg1==EditorInfo.IME_ACTION_DONE)
{
nameofuser = editname.getText().toString();
SharedPreferences.Editor e=prefs.edit(); // modify at this line
e.putString("name", nameofuser);
e.commit();
editname.setCursorVisible(false);
}