我目前正在研究Android的这个代码,它有一个动态创建的listfragment。甚至列表视图也会动态分配给它。它从SQL Lite中获取一个简单的游标对象,并将其分配给适配器。
一切都很好,问题是当方向发生变化时,savedInstanceState包总是为空。即使我重写OnSaveInstanceState并将项添加到该bundle或onCreateView。我做了一些研究,发现这种情况正在发生,因为片段没有分配ID。
关于将ID分配给listfragment以及如何分配的问题,我遇到了一些问题。我正在使用FragmentTransaction并使用TAG标识符。
我很感激有关此事的任何帮助。
谢谢。
答案 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);