【问题标题】:Starting new Activities and adding them to a Fragment-based layout启动新活动并将它们添加到基于片段的布局中
【发布时间】:2012-07-07 19:51:34
【问题描述】:

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

【问题讨论】:

    标签: android android-fragments android-activity android-actionbar


    【解决方案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);
    }
    

    如果您正在寻找好的片段 API 教程,那么 Lars Vogel 有很好的解释。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多