我正在尝试先设置第二个标签页。所以我想这样做。
在我的MainActivity中,我扩展了FragmentActivity
。
我在全球范围内初始化Tabhost。
private TabHost mTabHost;
我在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);
}
但是我无法将第二个标签设置为先加载。
此外,我无法创建选项菜单。
我在MainActivity中添加以下代码。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
但菜单也没有创建。请帮我解决这些问题。
答案 0 :(得分:1)
尝试在MainActivity的onCreate()中实现它们,而不是使用静态方法。
喜欢
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);
}
对于onCreateOptionsMenu(),您需要执行类似此程序的操作。
@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;
}
如果您想使用XML,可以执行以下操作
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
并在菜单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>