Я нашел ответы на похожие вопросы, но у меня не получилось ни одного.
Q1: Сохранение нескольких EditText после закрытия программы
Q2: Сохранить последний текст из Edittext и восстановить его после onDestroy
В моем случае речь идет о ~ 50 EditTexts. С вопросом 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, как я могу изменить свой код, чтобы он правильно сохранил данные?
Заранее спасибо.