我有一個名爲MyView的自定義視圖,它從XML佈局擴展其內容。在XML中,我有一個TextView,其ID是「文本」。我的活動中有2個MyViews。所以有2個ID爲「text」的視圖。這導致Android的onSaveInstanceState實現問題 - 只有一個TextView被保存。如何解決這個問題?我的自定義視圖不保存其狀態
0
A
回答
0
簡單的答案是更改您的一個「文本」視圖的ID。
0
我有這個問題,我不喜歡改變ID的想法。經過大量的研究,我發現了一個解決方案,覆蓋了onAttachedToWindow()方法,並且僅在其內部更改了對象值,而不是在onRestoreInstanceState中進行更改。我希望它有幫助。
@Override
protected Parcelable onSaveInstanceState(){
bundle = new Bundle();
bundle.putParcelable("instanceState", super.onSaveInstanceState());
bundle.putString("Text", txt_edit.getText().toString());
return bundle;
}
@Override
protected void onRestoreInstanceState(Parcelable state) {
if (state instanceof Bundle) {
bundle = (Bundle) state;
state = bundle.getParcelable("instanceState");
}
super.onRestoreInstanceState(state);
}
@Override
protected void onAttachedToWindow() {
if (bundle != null){
txt_edit.setText(bundle.getString("Text"));
}
super.onAttachedToWindow();
}
相關問題
- 1. 保存自定義視圖的狀態?
- 2. 自定義視圖的狀態已保存,但從未恢復
- 3. 保存狀態的視圖
- 4. Pjax保存自定義狀態數據
- 5. 保存狀態自定義RecyclerView
- 6. 如果使用自定義文本視圖,Viewpager不保存片段狀態
- 7. 保存表格視圖的狀態/保存表格視圖文本的狀態
- 8. 自定義視圖暫停狀態
- 9. 保存自定義視圖的實例
- 10. 在視圖狀態下存儲控件的自定義屬性
- 11. 如何在Android的自定義視圖中保存實例狀態?
- 12. 複選框在自定義列表視圖中檢查並保持其狀態?
- 13. 保留視圖控制器之間的自定義標籤欄視圖狀態
- 14. 如何將我的Dia圖形保存爲自定義形狀?
- 15. 安卓保存自定義列表視圖複選框狀態sharedpreferences問題
- 16. 保存Silverlight視圖的狀態
- 17. gridview保存視圖狀態的數據?
- 18. 如何保存視圖類的狀態?
- 19. Android的保存網格視圖狀態
- 20. 如何保存動態viewpager中保存的視圖狀態
- 21. Android自定義圖像按鈕不會保持選中狀態
- 22. 用Honeycomb保存視圖狀態
- 23. 保存和恢復視圖狀態android
- 24. 在導航視圖上保存狀態
- 25. JSF保存/恢復視圖狀態
- 26. 保存片段/視圖狀態
- 27. Android如何保存我的列表視圖的狀態
- 28. 保存自定義對象ArrayList的狀態
- 29. Android中的自定義按鈕未保存狀態
- 30. 保存自定義ListView的實例狀態?
如何做到這一點? – fhucho 2011-06-09 12:43:00
那麼,你在你的問題中聲明你有兩個不同的視圖,其ID爲「text」。您需要將其中一個更改爲具有不同的ID。沒有看過你的代碼來知道你是如何實現的,我不能再比這個更具體。 – 2011-06-09 12:46:00
我有一個從myview.xml加載佈局的MyView類。在myview.xml中有一個id =「text」的TextView。在activity.xml中我有2個MyViews。它們中的每一個都會從myview.xml中加載它的內容。所以如果我在myview.xml中修改id,我的MyViews的_both_將會有一個帶有新id的TextView。 – fhucho 2011-06-09 12:58:21