私はメールアプリケーションを持っています。私のメールテキストボックスには、1000語以上の長いテキストを入力する必要があります。何かが起こってアクティビティがクラッシュした場合、私のデータは失われます。クラッシュ後にアクティビティを再オープンすると、入力されたメール全体が損失なくテキストボックスに残りますので、データを保存するにはどうすればよいですか? 、偶発的なクラッシュが発生した場合のアクティビティのデータの保存方法
メールEditText
とユーザーの種類などにリスナーを設定し
edittextMail.addTextChangedListener(textwatcher);
private TextWatcher textwatcher = new TextWatcher() {
@Override
public void afterTextChanged(Editable aChar) {
}
@Override
public void beforeTextChanged(CharSequence aChar, int aStart, int aCount, int aAfter) {
}
@Override
public void onTextChanged(CharSequence aChar, int aStart, int aCount, int aAfter) {
saveData();
}
};
private void saveData() {
SharedPreferences sharedPref = this.getSharedPreferences("sharedkey", MODE_WORLD_READABLE);
SharedPreferences.Editor sharedPrefEditor = sharedPref.edit();
sharedPrefEditor.putString("textsaved", editText.getText().toString());
sharedPrefEditor.commit();
}
private void retrieveData() {
SharedPreferences sharedPref = this.getSharedPreferences("sharedkey", MODE_WORLD_READABLE);
editText.setText(sharedPref.getString("textsaved", "No string retrieved."));
}
ユーザーがテキストを変更すると、テキストを保存する必要があります。 –