我有一个名为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. 保存状态自定义RecyclerView
- 3. 如果使用自定义文本视图,Viewpager不保存片段状态
- 4. 自定义视图暂停状态
- 5. 保存自定义视图的实例
- 6. 如何在Android的自定义视图中保存实例状态?
- 7. 安卓保存自定义列表视图复选框状态sharedpreferences问题
- 8. 如何保存视图类的状态?
- 9. gridview保存视图状态的数据?
- 10. 如何保存动态viewpager中保存的视图状态
- 11. Android自定义图像按钮不会保持选中状态
- 12. 用Honeycomb保存视图状态
- 13. 保存和恢复视图状态android
- 14. 保存片段/视图状态
- 15. 保存自定义ListView的实例状态?
- 16. 保存自定义对象ArrayList的状态
- 17. Android中的自定义按钮未保存状态
- 18. 如何保存在自定义适配器中的imageview状态
- 19. 保存自定义对象的状态 - 在onResume方法
- 20. 如何保存我的自定义视图对象状态以执行恢复游戏?
- 21. UITableViewCell不保持其选定状态
- 22. 视图状态不保留值
- 23. 如何访问状态视图的自定义属性?
- 24. 如何检索自定义视图的状态?
- 25. 如何保存自定义微调器状态
- 26. 将自定义对象数组保存为实例状态
- 27. 自定义控制图 - 焦点状态
- 28. 自定义CSS图像盘旋状态
- 29. 保存地图状态
- 30. 自定义迭代器,其在保存
如何做到这一点? – 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