Android从EditText保存SharedPreferences

bha*_*hik 0 android sharedpreferences android-edittext

在我的应用程序中,我有一个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){

    }
});
Run Code Online (Sandbox Code Playgroud)
  1. 我不确定,是否放入EditTextonTextChanged()或afterTextChanged.
  2. 我试图将它放在onTextChanged()和afterTextChanged中但是当我重新启动应用程序时,没有我编辑的文本.请帮助

Doo*_*ght 12

您正在保存文本,但在加载应用程序时从不加载它.

尝试添加此行以设置文本:

message.setText(prefs.getString("autoSave", ""));
Run Code Online (Sandbox Code Playgroud)

见下面的完整示例

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();
  }

});
Run Code Online (Sandbox Code Playgroud)