我对 Fragments API 很陌生,这是我的问题:假设我有一个Activity
和一个ActionBar
带有标签的标签。假设我想从我的应用程序启动消息传递应用程序,通常它将作为一个新的Activity
. 是否可以将消息Activity
作为新标签添加到我的Activity
? 我怎样才能达到这个效果?提前致谢。
问问题
671 次
1 回答
1
在您的 onCreate 方法中执行以下操作
Context context = getApplicationContext();
ActionBar actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab PlayerTab = actionbar.newTab().setText("Fragment A");
ActionBar.Tab StationsTab = actionbar.newTab().setText("Fragment B");
Fragment PlayerFragment = new AFragment();
Fragment StationsFragment = new BFragment();
PlayerTab.setTabListener(new MsgTabsListener(PlayerFragment, context));
StationsTab.setTabListener(new MsgTabsListener(StationsFragment, context));
actionbar.addTab(PlayerTab);
actionbar.addTab(StationsTab);
然后添加类MsgTabListener
并执行以下操作
class MsgTabsListener implements ActionBar.TabListener {
public Fragment fragment;
public Context context;
public MsgTabsListener(Fragment fragment, Context context) {
this.fragment = fragment;
this.context = context;
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
//Start a new activity here with respect to your main context.
context.StartActivity(new Intent(....));
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.replace(R.id.fragment_container, fragment);
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(fragment);
}
如果您正在寻找好的 Fragments API 教程,那么 Lars Vogel 有很好的解释。
http://www.vogella.com/articles/Android/article.html#fragments_tutorial
于 2012-07-07T21:25:24.393 回答