Reputation: 1731
I am trying to set the 2nd tab load first. So That I am trying like this.
In my MainActivity I extend FragmentActivity
.
I initialize the Tabhost Globally.
private TabHost mTabHost;
I call the following method in OnCreate
private void initialiseTabHost() {
mTabHost = (TabHost) findViewById(android.R.id.tabhost);
mTabHost.setup();
// TODO Put here your Tabs str_near_by str_best_offer
MainActivity.AddTab(
this,
this.mTabHost,
this.mTabHost.newTabSpec("Tab 1").setIndicator(
"Tab 1"));
MainActivity.AddTab(this, this.mTabHost,
this.mTabHost.newTabSpec("Tab 2").setIndicator("Tab 2"));
MainActivity.AddTab(
this,
this.mTabHost,
this.mTabHost.newTabSpec("Tab 3").setIndicator(
"Tab 3"));
mTabHost.setCurrentTab(1); // Here I am setting the 2nd tab load first
mTabHost.setOnTabChangedListener(this);
}
But I can not set the 2nd tab to load first.
And Also I can not create Options menu.
I add the following code in my MainActivity.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
But Menu also is not get created. Please help me to resolve these issues.
Upvotes: 0
Views: 155
Reputation: 2281
Instead of using a static method, try implement them in onCreate() of MainActivity.
like
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
mTabHost = (TabHost) findViewById(android.R.id.tabhost);
mTabHost.setup();
// Tab 1
TabSpec tab1Spec = tabHost.newTabSpec("Tab 1");
// setting Title and Icon for the Tab
tab1.setIndicator("Tab 1",getResources()
.getDrawable(R.drawable.icons_tab_one));
Intent tab1Intent = new Intent(this, MainActivity.class);
tab1Spec.setContent(tab1Intent);
// Do the same for Tab 1,2
...
// Add tabs
mTabHost.addTab(tab1Spec);
mTabHost.addTab(tab2Spec);
mTabHost.addTab(tab3Spec);
mTabHost.setCurrentTab(1); // Now change the default tab
mTabHost.setOnTabChangedListener(this);
}
For onCreateOptionsMenu(), you need to do something like this PROGRAMICALLY.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
myActionItem = menu.add(Menu.NONE, AI_ID_blah,
AI_ID_blah, "My Action Item").setIcon(
R.drawable.ic_my_action_item);
myActionItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM
| MenuItem.SHOW_AS_ACTION_WITH_TEXT);
// add more items
...
return true;
}
If you want to use XML, you can do following
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
and in menu XML (menu/activity_main.xml)
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_settings" android:orderInCategory="100"
android:showAsAction="never" android:title="@string/menu_settings"/>
<item android:id="@+id/item1" android:title="Option1"></item>
<item android:id="@+id/item2" android:title="Option2"></item>
<item android:id="@+id/item3" android:title="Option3"></item>
<item android:id="@+id/item4" android:title="Option4"></item>
<item android:id="@+id/item5" android:title="Option5"></item>
<item android:id="@+id/item6" android:title="Option6"></item>
</menu>
Upvotes: 1