菜单项在我的应用程序中消失。
最初我创建的菜单项如下。但在某些 android 版本中菜单消失了。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TabHelper tabHelper = getTabHelper();
CompatTab menuTab = tabHelper.newTab("menu").setText(
R.string.tab_section1).setIcon(R.drawable.home_icon).setTabListener(
new InstantiatingTabListener(this, MenuFragment.class));
tabHelper.addTab(menuTab);
CompatTab favTab = tabHelper.newTab("favourites").setText(
R.string.tab_section2).setIcon(R.drawable.favourites_icon).setTabListener(
new InstantiatingTabListener(this, FavouritesFragment.class));
tabHelper.addTab(favTab);
}
上面的代码在最新的 Android 4.1.3 中运行良好,但在 4.0.1 和 4.0.3 中无法显示似乎是一些布局问题。
为了解决我添加了菜单 xml 如下
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menuhome"
android:icon="@drawable/map_icon"
android:title="@string/tab_section1"
android:orderInCategory="1"
android:showAsAction="always|withText" />
<item android:id="@+id/menumap"
android:icon="@drawable/map_icon"
android:title="@string/tab_section2"
android:orderInCategory="2"
android:showAsAction="always|withText" />
并添加 onOptionItemSelected 如下
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.menuhome:
finish();
return true;
case R.id.menumap:
//ERROR
//HOW CAN I CALL FRAGMENT HERE.?
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}