2

我目前正在为 Android 编写这段代码,它有一个动态创建的 listfragment。甚至列表视图也被动态分配给它。它从 SQL Lite 获取一个简单的游标对象并将其分配给适配器。

这一切都很好,问题是当方向发生变化时,savedInstanceState 包始终为空。即使我覆盖 OnSaveInstanceState 并将项目添加到该包或 onCreateView。我做了一些研究,发现这是因为片段没有分配给它的 ID。

关于将 ID 分配给 listfragment 的位置以及如何分配,我遇到了一些问题。我正在使用 FragmentTransaction 并使用 TAG 标识符。

对于此事,我将不胜感激。

谢谢你。

4

2 回答 2

2

您可以在进行交易时执行此操作。如果你打电话

FragmentTransaction.replace(containerViewId, fragment, tag);

或者

FragmentTransaction.add(fragment,tag)

或者

FragmentTransaction.add(containerViewId, fragment, tag);

然后,您可以使用tag来获取对Fragment此类的引用

FragmentManager.findFragmentByTag(tag);
于 2013-02-28T02:56:07.837 回答
2

看看这个问题:Android - Set fragment id

您不能将 ID 分配给动态创建的片段。

但是,您可以创建一个 .xml 布局文件并使用 .xml 为您的片段分配一个 id android:id="@+id/my_fragment"。您是否有理由不使用 xml 定义的片段?

于 2013-02-28T02:52:18.700 回答