基本上,
我正在使用slidingTabLayout和slidingTabStrip
我有一个ViewPager:
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_weight="1"
></android.support.v4.view.ViewPager>
在MainActivity.java上填充了适配器:
private ViewPager pager;
private TabsViewPagerAdapter adapter;
private SlidingTabLayout tabs;
protected void onCreate(Bundle savedInstanceState) {
adapter = new TabsViewPagerAdapter(getSupportFragmentManager(),Titles,Numboftabs);
pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(adapter);
tabs = (SlidingTabLayout) findViewById(R.id.tabs);
tabs.setDistributeEvenly(true);
tabs.setViewPager(pager);
}
TabsViewPagerAdapter返回一个片段,具体取决于标签位置:
public Fragment getItem(int position) {
if(position == 0)
{
PersonalTab tab1 = new PersonalTab();
return tab1;
}
else
{
GroupTab tab2 = new GroupTab();
return tab2;
}
}
最后,每个片段都包含这个简单的布局:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/personal_tab">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/textView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
标签渲染得很好并且正常工作。 现在我有两个问题,因为我是新手:
如何从主活动中访问此片段,以便我可以更改内部textView文本?
如果可以访问片段,是否最好更换片段以进行数据更改或动态更改内部数据?
答案 0 :(得分:0)
您可以从片段更改内部TextView
文字,无需从Activity
访问,但如果您想要访问Fragment
,则可以使用getFragmentByTag
功能
here是一个有用的链接,描述了如何实现这一目标。