0

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 タブで可能ですか? もしそうなら、どうすればいいですか?

4

0 に答える 0