I have one tabview which contain two different tab(subject and chapter) and i need to
create different menu for different tab. My question is that how to create different menu
for Subject tab and chapter tab. I create two menu but it show one menu on both tab view.
Please give some hint or reference.
Thanks in Advance.
Here is my code for reference.
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
}
}
But first thing,In one activity we can show only one Menu.You have two useless menu in Tab Activity.
And Second
The Main purpose of Tab Activity is to switching between activity not just simple view
Instead of using two menu here used in sub activity that is started by Tab Activity.I have never tried this.But should work.
Tab Activity{
Tab 1: activity A
Tab 2: activity B
}
A{
Show menu here
}
B{
Show menu here
}