【发布时间】:2018-11-11 16:17:17
【问题描述】:
我找到了类似问题的答案,但没有一个对我有用。
Q1:Saving several EditText after program closes
Q2:Save latest text from Edittext and restore it after onDestroy
在我的例子中,我们谈论的是大约 50 个 EditText。对于问题 Q2,我想出了如何保存一个 EditText,但是当我复制不同 EditTexts 的代码(并使用不同的参数)时,重新启动每个 EditText 时都会显示相同的单词。
public static final String LAST_TEXT1 = "";
public static final String LAST_TEXT2 = "";
public EditText myEditText1, myEditText2;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myactivity);
myEditText1= (EditText)findViewById(R.id.myEditText1);
final SharedPreferences pref1= PreferenceManager.getDefaultSharedPreferences(this);
myEditText1.setText(pref.getString(LAST_TEXT1, ""));
myEditText1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
pref.edit().putString(LAST_TEXT1, s.toString()).commit();
}
});
myEditText2= (EditText)findViewById(R.id.myEditText2);
final SharedPreferences pref2= PreferenceManager.getDefaultSharedPreferences(this);
myEditText2.setText(pref.getString(LAST_TEXT2, ""));
myEditText2.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
pref.edit().putString(LAST_TEXT2, s.toString()).commit();
}
});
}
基本上,这几次都改变了所有参数。 (pref, myEditText,LAST_TEXT) 但是所有不同的 EditTexts(如 myEditText1 和 myEditText2)都会在重新启动时显示相同的单词。
有没有什么有效的方法来保存所有这些内容?
是否有更好的方法将字符串保存在表格中(我是初学者)
如果没有“有效”的方法来保存所有这些 EditTexts,我该如何更改我的代码以便正确保存数据?
提前致谢。
【问题讨论】:
-
里面的edittexts是recyclerView还是gridView?
标签: android android-edittext sharedpreferences