1

我有一个主细节片段布局,如下所示:

在此处输入图像描述

当从列表视图中选择一个数字时,详细视图中的值会发生变化(即单选按钮文本会发生变化)。我有以下问题:当我在列表视图中单击数字 1 并在详细视图中选择选项 1,然后在列表视图中单击不同的数字时,详细视图选项已设置。如果此时我选择不同的选项并返回到列表视图 1,则设置最后一个选项(即我之前的选择不是持久的)。

如何确保我对单选按钮的选择在列表视图选项中保持不变,并且以前的单选按钮选择不会影响下一个单选按钮选择?

我目前的方法是在活动中使用静态数组来记录每个列表视图编号的选项选择。当我返回到特定的列表视图编号时,我会查找从数组中选择的单选按钮并相应地设置详细视图。但是上一个单选按钮选择仍然设置在下一个单选按钮组中。

4

1 回答 1

2

如果您对列表视图中的所有项目使用相同的详细信息片段,我认为您应该在每次选择更改时将当前用户的选择保存到列表视图项目的 Tag 对象中。

在更改之前保存它 (setTag()),如果 getTag() 不为空,则加载用户对项目的选择。

或者,您可以在 ViewPager 中使用相同(或不同)类型的不同片段,并使用 ListView 在页面之间切换。在您的情况下,这可能有点开销,但您可以免费获得状态保存、回溯等。此外,您将获得更简洁的代码。我更喜欢这个解决方案。

于 2013-05-17T07:24:52.877 回答