0

我对 Fragments API 很陌生,这是我的问题:假设我有一个Activity和一个ActionBar带有标签的标签。假设我想从我的应用程序启动消息传递应用程序,通常它将作为一个新的Activity. 是否可以将消息Activity作为新标签添加到我的Activity? 我怎样才能达到这个效果?提前致谢。

4

1 回答 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 回答