我想在我旋轉設備時保存EditText的值。 我正在使用Firebase數據庫來保存並獲取我的值。保存EditText的值onResume()
@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