1

私はこのような多くのタブを持っています:

TabHost th;
TabSpec spec;
th = (TabHost) findViewById(R.id.tabhost_template_two_tabs);
th.setup();
// all tab
spec = th.newTabSpec("All");
spec.setIndicator("All");
spec.setContent(R.id.tab_template_two_tabs_all);
th.addTab(spec);
// favorite tab
spec = th.newTabSpec("Favorite");
spec.setIndicator("Favorite");
spec.setContent(R.id.tab_template_two_tabs_favorite);
th.addTab(spec);

メニューを追加したいタブごとに、どのようにお願いしますか?

4

1 に答える 1

1

のそれぞれTabTabHost0から始まる番号が付いているため、を使用して現在どのタブにいるかを確認int currentTab = th.getCurrentTab();し、を使用して前のメニューをクリアしてから、を使用しmenu.clear()て新しいメニューを追加する必要があります。inflater.inflater(menuID, menu)

@Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        MenuInflater inflater = getMenuInflater();
        int currentTab = th.getCurrentTab();
        Toast.makeText(getApplicationContext(), currentTab+"", Toast.LENGTH_SHORT);
        if (currentTab == 0){
            menu.clear();
            inflater.inflate(R.menu.first, menu);}
        else{
            menu.clear();
            inflater.inflate(R.menu.second, menu);}
        return super.onPrepareOptionsMenu(menu);
    }

ノート:

onCreateOptionsMenuあなたの場合には役に立ちません

于 2013-01-25T20:52:16.860 に答える