【问题标题】:Android TabActivity and dynamic Tabs screen orientation issueAndroid TabActivity 和动态 Tabs 屏幕方向问题
【发布时间】:2012-04-19 07:47:43
【问题描述】:

我正在按需将视图(不是活动)添加到 TabActivity(这意味着在 onCreate 完成后,活动可以有零个或多个选项卡)。随着时间的推移,添加了更多选项卡,现在我需要以一种理智的方式保存它们,以便以后可以恢复它们。我尝试在各个视图上使用 saveHierarchyState 等,但它们在没有来自 editTexts 等的数据的情况下被恢复。

因此,鉴于我在 Activity 中有一个从 tabkey 映射到视图的 HashMap,您将如何保存这些数据并恢复它?

【问题讨论】:

    标签: android tabactivity


    【解决方案1】:

    好的,我明白了:)

    首先,我认为我需要按照here 的描述设置视图的 ID——使用这种方法,Android 能够恢复视图状态。但是由于我的动态选项卡都使用相同布局的视图,因此它们的子项都具有相同的 ID,因此 android 将覆盖数据(状态根据视图 ID 保存在稀疏数组中,因此 ID 应该是唯一的)和所有意见看起来一样。我通过手动保存视图状态并通过以下方式重新应用它来解决此问题:

    SparseArray<Parcelable> container = new SparseArray<Parcelable>();
    saveHierarchyState(container);
    b.putSparseParcelableArray("state", container);
    restoreHierarchyState(b.getSparseParcelableArray("state"));
    

    虽然这种方法有效,但我仍然需要确定是否可以通过不在布局 xml 文件中为视图设置 ID 来让 Android 完成所有工作(如果允许/可能的话)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多