actionbarsherlock在单个选项卡下有多个片段

时间:2013-06-03 20:22:59

标签: android tabs android-fragments actionbarsherlock android-fragmentactivity

我创建了我的Sherlock片段活动并实现了标签:

public class Home extends SherlockFragmentActivity
{
ActionBar actionBar;
TabHost myTabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    actionBar=getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    ActionBar.Tab tab1= actionBar.newTab();
    ActionBar.Tab tab2= actionBar.newTab();
    //ActionBar.Tab tab3 = actionBar.newTab();
    tab1.setText("Contacts");
    tab2.setText("Inbox");
//  tab3.setText("Outbox");
    tab1.setTabListener(new MyTabListener());
    tab2.setTabListener(new MyTabListener());
    actionBar.addTab(tab1, true);
    actionBar.addTab(tab2);
    actionBar.addTab(tab3);
}

这是我的标签更改监听器:

private class MyTabListener implements TabListener
{

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {

        if(tab.getPosition()==0)
        {
            FragmentA frag = new FragmentA ();
            ft.replace(android.R.id.content, frag );
        }
        else
        {
            FragmentB frag = new FragmentB ();
            ft.replace(android.R.id.content,frag );
        }
    }

这是我的FragmentA:

public class FragmentA extends Fragment 
{
    TextView textView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) 
{
    return inflater.inflate(R.layout.activity_list, container, false);
}
@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);

    }
}

在我的第一个标签下,有一个显示的列表。当我单击任何一个列表项时,我需要在同一个活动下加载另一个片段。当按下后退时,需要在同一个选项卡下加载旧片段。

这在actionbarsherlock标签中是否可行?如果是这样,我该怎么做?

0 个答案:

没有答案