【发布时间】:2013-09-13 15:07:47
【问题描述】:
我使用 TabPageIndicator 和 FragmentPagerAdapter 库有 2 个选项卡,名为 tab1(主页)和 tab2(配置文件)。
在 tab2 中,我有一个名为“登录”的按钮(tab2 膨胀 abc.xml)。
当用户点击“登录”按钮时,应用程序将在新活动中显示登录表单。
登录后,活动结束,tab2 的内容视图将更改(它显示用户的个人资料,因为它会膨胀xyz.xml)。我该怎么做?
public class MainActivity extends SherlockFragmentActivity {
private static String[] TAB_NAMES = null;
private Context context = this;
private static FragmentPagerAdapter adapter ;
@Override
protected void onCreate(Bundle savedInstanceState) {
if (TAB_NAMES == null) {
TAB_NAMES = new String[] {
getResources().getString(R.string.tab_home),
getResources().getString(R.string.tab_profile) };
}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
adapter = new TabsAdapter(
getSupportFragmentManager());
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(adapter);
TabPageIndicator indicator = (TabPageIndicator) findViewById(R.id.indicator);
indicator.setViewPager(pager);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater infalter = getSupportMenuInflater();
infalter.inflate(R.menu.main_menu, menu);
return true;
}
class TabsAdapter extends FragmentPagerAdapter {
public TabsAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return HomeFragment.getInstance();
case 1:
return new ProfileFragment();
default:
return HomeFragment.getInstance();
}
}
}
【问题讨论】:
-
你试过
FragmentStatePagerAdapter吗? -
不,我没有,你能告诉我如何使用它吗?请编辑我上面的代码。
-
尝试将
TabsAdapter扩展到FragmentStatePagerAdapter而不是FragmentPagerAdapter。所以它会像class TabsAdapter extends FragmentStatePagerAdapter -
好吧,在完成登录活动之后。为了将 abc.xml 切换到 xyz.xml 我必须做什么?
标签: android android-fragments android-tabs