デバイスを回転させるときにEditTextの値を保存しようとしています。 Firebaseデータベースを使用して、値を保存して取得しています。EditResume()を保存します。
@Override
protected void onStart() {
super.onStart();
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Post post = dataSnapshot.getValue(Post.class);
if (mPostKey != null) {
titleEditText.setText(post.getTitle());
notesEditText.setText(post.getNotes());
} else {
titleEditText.setText(prefs.getString("titleText", post.getTitle()));
notesEditText.setText(prefs.getString("notesText", post.getTitle()));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
mPostReference.addValueEventListener(postListener);
mPostListener = postListener;
}
これは、値がすでにfirebaseに格納されていない場合にのみ機能します。
@Override
protected void onResume() {
super.onResume();
prefs.edit().putString("titleText", titleEditText.getText().toString()).commit();
prefs.edit().putString("notesText", notesEditText.getText().toString()).commit();
}
私はマニフェストの向きの変更を設定できましたが、私がそれを行うと、アクティビティに写真を追加すると、まだテキストが失われています。
また、私は前にこのようなsuper.onResume()の後にリスナーを削除しようとしています
@Override
public void onResume() {
super.onResume();
if (mPostListener != null) {
mPostReference.removeEventListener(mPostListener);
}
}
すべてのヘルプはapreciatedされます。
を行いますが、成功しませんように、それはそれを保存することはありませんので、
私はこれより良いと思います。 – r3dm4n