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

Tab中的每个TabHost都有一个从 0 开始的数字,因此您必须知道您现在在哪个选项卡中使用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 回答