为动态创建的ListFragment分配ID

时间:2013-02-28 02:41:20

标签: android bundle fragment

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

一切都很好,问题是当方向发生变化时,savedInstanceState包总是为空。即使我重写OnSaveInstanceState并将项添加到该bundle或onCreateView。我做了一些研究,发现这种情况正在发生,因为片段没有分配ID。

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

我很感激有关此事的任何帮助。

谢谢。

2 个答案:

答案 0 :(得分:2)

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

您无法为动态创建的片段分配ID。

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

答案 1 :(得分:2)

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

FragmentTransaction.replace(containerViewId, fragment, tag);

FragmentTransaction.add(fragment,tag)

FragmentTransaction.add(containerViewId, fragment, tag);

然后,您可以使用tag获取Fragment这样的引用

FragmentManager.findFragmentByTag(tag);