Как добавить другой пункт меню в разные вкладки?

У меня есть одна вкладка, которая содержит две разные вкладки (тема и глава), и мне нужно
создать другое меню для другой вкладки. Мой вопрос заключается в том, как создать другое меню
для вкладки «Тема» и вкладки «Глава». Я создаю два меню, но оно показывает одно меню на обеих вкладках.
Пожалуйста, дайте подсказку или ссылку.
Заранее спасибо.
Вот мой код для справки.

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
        }

}

person Sandip Armal Patil    schedule 22.03.2012    source источник


Ответы (1)


Но, во-первых, в одном действии мы можем показать только одно меню. У вас есть два бесполезных меню во вкладках.

И второе. Основная цель Tab Activity — переключение между действиями, а не просто просмотр.

Вместо того, чтобы использовать здесь два меню, используемых в поддействии, которое запускается вкладкой Activity. Я никогда не пробовал это. Но должно работать.

Активность на вкладке{

Вкладка 1: действие А

Вкладка 2: задание B

}

A{ Показать меню здесь}

B{ Показать меню здесь }

person Tofeeq Ahmad    schedule 22.03.2012