SharedPreferences无需保存按钮即可自动从TextView保存文本

时间:2019-04-18 21:20:47

标签: java android sharedpreferences

我有一个问题,应该记住保存用户通过语音输入的TextView中的文本,但是我启用了Night模式,当白天模式进入Night模式时,在那一刻消失了。我知道它需要是SharedPreferences,我尝试了这段代码,但是我无法记录任何内容。我强调没有保存按钮。刷新活动时,必须返回已经输入的文本。我需要帮助

/*...*/{
    //...
    myText = (TextView) findViewById(R.id.textView);


    SharedPreferences prefs = getPreferences(MODE_PRIVATE);
    String restoredText = prefs.getString("text", null);
    if (!TextUtils.isEmpty(restoredText)) {
        myText.setText(restoredText);
    }
    //...
}


public void loadData() {
    SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
    editor.putString("text", myText.getText().toString());
    editor.commit();
}

1 个答案:

答案 0 :(得分:0)

听起来您的活动已被杀死。如果是这种情况,那么您应该实现android活动生命周期方法onSaveInstanceState和onRestoreInstanceState。

protected void onSaveInstanceState(Bundle state) {
  super.onSaveInstanceState(bundle);
  state.putString("text", myText.getText().toString());
}

protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    myText.setText(savedInstanceState.getString("text"));

}