在我的应用程序中,我有一个EditText供用户输入文本。所以,我想在SharedPreferences中保存EditText的文本。我希望在更改editText中的文本时更新SharedPreferences。我正在使用此代码:
message = (EditText) findViewById(R.id.et_message);
final SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
message.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count)
{
prefs.edit().putString("autoSave", s.toString()).commit();
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after)
{
}
@Override
public void afterTextChanged(Editable s)
{
}
});
prefs.edit().putString("autoSave", s.toString()).commit();
放入onTextChanged()或afterTextChanged。答案 0 :(得分:10)
您正在保存文本,但在加载应用程序时从不加载它。
尝试添加此行以设置文字:
message.setText(prefs.getString("autoSave", ""));
见下面的完整示例
final SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
message.setText(prefs.getString("autoSave", ""));
message.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count)
{
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after)
{
}
@Override
public void afterTextChanged(Editable s)
{
prefs.edit().putString("autoSave", s.toString()).commit();
}
});
答案 1 :(得分:1)
查看格式良好的共享首选项示例here。
你需要做的是在你的onCreate()方法中: 就这样说:
message.setText(prefs.getString("autoSave", null));
答案 2 :(得分:1)
afterTextChanged
代码:
private SharedPreferences prefs.
prefs = getPreferences(Context.MODE_PRIVATE);
EditText message = (EditText)findViewById(R.id.editText);
message.setText(prefs.getString("autoSave", ""));
答案 3 :(得分:1)
在afterTextChanged()
中输入共享首选项