回答
您必須將狀態保存在持久內存中。在這種情況下,我會說Shared Preferences是你最好的選擇。
類似的信息(與切換按鈕的活動內):
public void saveButtonState(boolean pressed) {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("TOGGLE_BUTTON_STATE", pressed);
editor.commit();
}
然後在你的onCreate可以通過從SharedPreferences閱讀「TOGGLE_BUTTON_STATE」設置按鈕狀態。
我有這個代碼: – user1071138 2013-04-06 08:07:34
謝謝,我用這個,我解決了恢復狀態到onResume()方法;) – user1071138 2013-04-06 11:25:02
不錯,考慮接受我的答案,所以問題得到解答 – jelgh 2013-04-06 11:45:12
執行此操作時onCreate()
或onResume()
按您的要求:
SharedPreferences preferences = this.getSharedPreferences(Constants.SENDEVENT_PREFERENCE,Context.MODE_PRIVATE);
if(preferences.getBoolean(Constants.SENDEVENT_PREFERENCE_SAVE_LIBRARY, false))
lib.setChecked(true);
而且在onCheckedChanged
方法做到這一點:
if (buttonView == lib) {
if (isChecked) {
prefsEditor.putBoolean(Constants.SENDEVENT_PREFERENCE_SAVE_LIBRARY,
true);
prefsEditor.commit();
} else {
prefsEditor.putBoolean(Constants.SENDEVENT_PREFERENCE_SAVE_LIBRARY,
false);
prefsEditor.commit();
}
}
的原因,爲什麼狀態reseted的是,你的活動完全銷燬,然後由於Android架構再次恢復。要存儲按鈕的狀態,您應該將其狀態保存到onSaveInstaceState()中的Bundle中並在onRestoreInstanceState()中恢復 - 這些方法專爲這類任務設計。
因此,答案是,你應該落實節能/兩種方法恢復按鈕狀態:
@Override
protected void onSaveInstanceState (Bundle outState) {
// Your code here
}
@Override
protected void onRestoreInstanceState (Bundle savedInstanceState) {
// Your code here
}
詳細信息docs看到:
注意「Killable」列在上面的表 - 對於那些標記爲可壓縮的方法,在該方法返回之後,託管該活動的進程可能隨時被系統殺死,而沒有執行其代碼的另一行。因此,您應該使用onPause()方法將任何持久性數據(如用戶編輯)寫入存儲。另外,在將活動置於這種背景狀態之前調用onSaveInstanceState(Bundle)方法,允許您將活動中的任何動態實例狀態保存到給定的Bundle中,以便稍後在onCreate(Bundle)中接收,如果活動需要重新創建。有關流程生命週期與其託管活動關聯的詳細信息,請參閱流程生命週期部分。請注意,將持久數據保存在onPause()而不是onSaveInstanceState(Bundle)中非常重要,因爲後者不是生命週期回調的一部分,所以在其文檔中所述的每種情況下都不會調用它。
- 1. 3狀態切換按鈕?
- 2. 切換按鈕狀態
- 3. Android多狀態切換按鈕檢查狀態
- 4. 管理切換按鈕的狀態
- 5. 單擊按鈕時切換狀態?
- 6. Silverlight多狀態切換按鈕
- 7. Jquery切換按鈕,並關閉狀態
- 8. 切換按鈕更改其狀態
- 9. 按鈕在狀態之間切換
- 10. 恢復在ionic2切換按鈕狀態
- 11. Arduino的按鈕狀態切換
- 12. 切換按鈕狀態並重用其他按鈕的切換功能
- 13. 切換任何按鈕後,檢查多個按鈕的切換狀態
- 14. Android切換按鈕
- 15. Ionic2切換切換按鈕狀態基於方法
- 16. 自定義wpf中的切換按鈕的切換狀態
- 17. 按鈕不是從禁用狀態切換到啓用狀態
- 18. Android的變化切換按鈕狀態 - TextView的或其他android.widget
- 19. Android的切換按鈕狀態設置texview文本
- 20. 獲取切換按鈕在不同類中的狀態android
- 21. Android切換按鈕狀態更改繼續
- 22. android驗證textview取決於切換按鈕的狀態
- 23. 在Android中更改切換按鈕狀態的問題
- 24. Android:問題創建自定義3狀態切換按鈕
- 25. Silverlight按鈕切換按鈕時背景圖像更改狀態
- 26. 更改切換按鈕/單選按鈕狀態外部事件
- 27. 從另一個按鈕更改切換按鈕的狀態
- 28. Android Widget(AppWidgetProvider)>'兩個狀態'按鈕就像一個切換按鈕..和WindowManager
- 29. 切換狀態recive的Android
- 30. Android的多狀態切換
使用SharedPrefrences ... – Rahil2952 2013-04-06 07:57:53
可能重複:http://stackoverflow.com/q/151777/1048087 – Prizoff 2013-04-06 08:12:11
使用您在'的onCreate()'和'的onSaveInstanceState()獲取束'加載/保存按鈕狀態。首選項不應用於生命週期臨時存儲。 – 2013-04-06 08:51:17