gpt4 book ai didi

android - 当我们在 Activity 之间来回切换时保存动态生成的 View 实例

转载 作者:太空宇宙 更新时间:2023-11-03 13:02:47 25 4
gpt4 key购买 nike

我在单击按钮时膨胀 View ,用户可以根据需要添加任意数量的 View ,一切都很好我让它工作了,但现在问题是当我返回一个 Activity 并再次回到我动态生成的 Activity 时生成的每个 View 都消失了。如果我去下一个 Activity 并回到膨胀的 Activity ,情况也是如此。我知道 onSaveInstanceonRestoreSaveInstance。但是如何将 View 信息放入 onSaveInstanceState 中的一个包中?请注意,我的 View 是动态生成的,即在单击按钮时生成,我想知道如何保留我的 Activity 状态。你是怎么做到的?

最佳答案

我认为您应该实现某种逻辑来帮助您恢复 Views 的状态.所以你应该设计一个类,比方说 ViewDetail以某种方式保留有关 Views 的详细信息您正在添加....类型、维度等。此类应实现 Parcelable 所以你可以将它添加到 bundle .

所以你会保留一个ArrayList<ViewDetail> , myViews每次用户添加一个新的View你创建一个新的 ViewDetail您添加到 myViews 的对象数组。

然后保存你的Views并使用这些对象恢复它们:

@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//save your view states
outState.putParcelableArrayList("MY_VIEWS",myViews);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
//get the views back...
myViews=savedInstanceState.getParcelableArrayList("MY_VIEWS");
//TODO: add the views back to your Activity
}

关于android - 当我们在 Activity 之间来回切换时保存动态生成的 View 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8743236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com