我如何复制片段?

时间:2013-06-10 20:13:53

标签: android xml android-activity duplicates fragment

My FragmentActivity循环并从同一个xml和activity创建8个片段。片段有TextView,通过将参数传递给片段,我想在片段的每个TextView内显示不同的文本。使用这种方法,我可以用不同的文本保存创建139个相同的片段。

问题,当我TextView时,所有8个片段的setText()都会发生变化,因为它们都共享相同的模板(xml和活动)。

解决方案 - 请参阅下面的答案。

Extremis公司

2 个答案:

答案 0 :(得分:0)

这是因为当您复制片段时,您为每个创建的片段引用相同的视图。您必须更改片段的ID。如果不这样做,则始终调用相同的片段。

最终答案:on onCreateView方法

private static int id = 0;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle      savedInstanceState) {
    LinearLayout mLinearLayout = new LinearLayout(this);
    TextView mTextView = new TextView(this);
    mTexTView.setId(Id); 
    id++;
    mLinearLayout.addView(mTextView);

    return mLinearLayout;
}

您可以使用textview的id并设置文本。

答案 1 :(得分:0)

好的,所以当我尝试以上面尝试的方式复制片段时,我已经知道我的代码出了问题。

我的解决方案

我创建了一个新的虚拟Android项目,并选择了导航类型为可滚动标签+滑动

然后我了解到它有1个活动:

main.java - whcih extends:

FragmentActivity

和,2布局:

main.xml - 其中包含:

<android.support.v4.view.ViewPager>

<android.support.v4.view.PagerTitleStrip>

Fragment.xml - 其中包含:

TextView

通过调整适配器,我能够基于相同的布局(xml)创建独特的片段。

最终 - 使用Scrollable Tabs + Swipe创建一个新的虚拟项目,并根据该示例调整您的代码。

希望得到这个帮助。

<强> Extremis公司