My FragmentActivity循环并从同一个xml和activity创建8个片段。片段有TextView
,通过将参数传递给片段,我想在片段的每个TextView
内显示不同的文本。使用这种方法,我可以用不同的文本保存创建139个相同的片段。
问题,当我TextView
时,所有8个片段的setText()
都会发生变化,因为它们都共享相同的模板(xml和活动)。
解决方案 - 请参阅下面的答案。
Extremis公司
答案 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公司强>