0

私はFragmentsAPIにかなり慣れていないので、ここに私の質問があります。タブ付きのとがある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);
}

優れたFragementsAPIチュートリアルをお探しの場合は、LarsVogelが非常に優れた説明を提供しています。

http://www.vogella.com/articles/Android/article.html#fragments_tutorial

于 2012-07-07T21:25:24.393 に答える