У меня есть простой editText, в который пользователь вводит число или строку. Я хочу сохранить этот номер или строку, когда пользователь снова войдет в приложение.
1. Сначала сохраните это в preference
как это
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString(MY_NAME, edittext.getText().toString());
prefsEditor.putString(MY_WALLPAPER, "f664.PNG");
prefsEditor.commit();
2. Теперь второй раз, когда вы получите это
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
String prefName = myPrefs.getString(MY_NAME, 0);
String wallPaper = myPrefs.getString(MY_WALLPAPER, null);
Похоже, вы могли бы сделать что-то похожее на это: подсчет голосов в EditText Changed Listener
Затем, как только вы обнаружите, что текст изменился, вы можете сохранить его в SharedPreferences
.
В качестве альтернативы, если вы хотите продолжать, когда пользователь уходит или входит в приложение, вы можете просто переопределить метод onPause()
своей активности, чтобы сохранить его в SharedPreferences
. Просто используйте <EditText>.getText()
чтобы получить <EditText>.getText()
строку, а затем сохраните ее. Переопределите onResume()
а затем используйте <EditText>.setText(<String from SharedPreference>)
чтобы восстановить его при входе в приложение.
Я предполагаю, что вы знаете, как использовать SharedPreferences, но дайте мне знать, если вы этого не сделаете.
Этот код будет сохраняться, когда пользователь удаляет фокус из окна EditText с помощью OnFocusChangeListener;
EditText userInput = (EditText)findViewById(R.id.ID_HERE);
SharedPreferences pref = this.getPreferences(this.MODE_PRIVATE);
String data_key = "data";
View.OnFocusChangeListener persistData = new View.OnFocusChangeListener(){
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(!hasFocus){
EditText e = (EditText)v;
SharedPreferences.Editor edit = pref.edit();
edit.putString(data_key,e.getText().toString());
edit.commit();
}
}
};
userInput.setOnFocusChangeListener(persistData);