强制从现有对象重新实例化片段

时间:2014-01-12 18:08:32

标签: android android-fragments navigation-drawer

我不知道标题是否清楚,但我想要做的是以下内容:

我确实有一个ListView - a drawer。它应该包含我的应用程序中的片段标题列表,每个列表项在单击时应该在主应用程序区域中打开片段。

现在我已经成功创建了一个自定义DrawerItem对象的适配器,其中每个对象都有以下2个成员:

String titleFragment fragment

fragment我填充了我的片段的新实例,title和每个片段的标题(从字符串资源中检索)。

所有工作都很好,直到我尝试将fragment添加到主要内容区域的部分。它第一次工作,但是当ListView应用程序第二次选择相同的片段时,应用程序崩溃时出现Fragment already added错误。

我的猜测是,单个实例化的Fragment对象只能添加一次到布局(使用FragmentTransaction,因为这是我用它来添加它)。这就是第二次尝试失败的原因。

所以我的问题是,如何在片段对象添加到布局之前重新创建片段对象;或者我如何只保留其类名,以便我可以在将其添加到布局之前对其进行实例化。

1 个答案:

答案 0 :(得分:0)

如果我是你,我会这样做:

  • 我的ListView适配器只包含String或String,并且id为对象。
  • 关于项目点击我将检查点击了哪个元素,然后创建适当的frgment实例并在片段管理器中添加它