如何在不同的tabview中添加不同的菜单项?

时间:2012-03-22 10:41:43

标签: android menu tabview

我有一个tabview包含两个不同的标签(主题和章节),我需要
为不同的选项卡创建不同的菜单我的问题是如何创建不同的菜单
对于主题选项卡和章节选项卡。我创建了两个菜单,但它在两个选项卡视图中都显示了一个菜单 请给出一些提示或参考 在此先感谢。
这是我的代码供参考。

public class MasterMainActivity extends TabActivity
{
LayoutInflater layoutInflater = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.master);
     Intent intent=getIntent();
     setResult(RESULT_OK, intent);
        layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        TabHost tabHost = getTabHost();


        TabHost.TabSpec tab1spec = tabHost.newTabSpec("tabOneSpec");        
        ImageView imgView = new ImageView(this);
        //imgView.setBackgroundResource(R.drawable.examstudy);
        tab1spec.setIndicator("Subject", imgView.getBackground());
        tab1spec.setContent(new TabContentLayout());

        TabHost.TabSpec tab2spec = tabHost.newTabSpec("tabTwoSpec");
        tab2spec.setContent(new TabContentLayout());
        ImageView imgView1 = new ImageView(this);
       // imgView1.setBackgroundResource(R.drawable.datetime);
        tab2spec.setIndicator("Chapter", imgView1.getBackground());   
        tabHost.addTab(tab1spec);
        tabHost.addTab(tab2spec);          
      }
            private class TabContentLayout implements TabHost.TabContentFactory {
        @Override
        public View createTabContent(String tag) {
            View view = null;
            if(tag.equals("tabOneSpec"))
            {
                view = (LinearLayout) layoutInflater.inflate(R.layout.subjecttabview, null);                    

            }
            if(tag.equals("tabTwoSpec"))
            {
                view = (LinearLayout) layoutInflater.inflate(R.layout.chaptertabview, null);                    
            }               
            return view;
        }
    }
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // TODO Auto-generated method stub
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.master_subject, menu);      
            return true;
        }
        @Override
        public boolean onOptionsItemSelected(MenuItem item) 
        {
                switch (item.getItemId())
                {
                case R.id.master_AddSubject: 
                      Intent intent=new   Intent(getApplication(),AddMasterSubActivity.class);
                      startActivity(intent);
                        return true;

                case R.id.master_SubjectUpdate:
                       //deleteAll();
                        return true; 
                case R.id.master_SubjectDelete:
                       //deleteAll();
                        return true; 
                  } 
                return false; //should never happen
        }

        public boolean onCreateOptionsMenu1(Menu menu) {
            // TODO Auto-generated method stub
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.master_chapter, menu);      
            return true;
        }
        public boolean onOptionsItemSelected1(MenuItem item) 
        {
                switch (item.getItemId())
                {
                case R.id.master_Chapter_AddChapter: 
                     Intent intent=new Intent(getApplication(),AddMasterChaActivity.class);
                      startActivity(intent);
                        return true;
                case R.id.master_ChapterUpdate:
                       //deleteAll();
                        return true; 
                case R.id.master_ChapterDelete:
                       //deleteAll();
                        return true; 
                  } 
                return false; //should never happen
        }

}

1 个答案:

答案 0 :(得分:1)

但首先,在一项活动中,我们只能显示一个菜单。您在Tab Activity中有两个无用的菜单。

和第二次 Tab Activity的主要目的是在活动之间切换,而不仅仅是简单的视图

而不是使用在Tab活动启动的子活动中使用的两个菜单。我从未尝试过这个。但是应该可以。

标签活动{

标签1:活动A

标签2:活动B

}

A { 在这里显示菜单 }

B { 在这里显示菜单 }