我正在开发一款Android应用,其主屏幕上有图标,可链接到应用的不同功能。除了一个屏幕之外,从该主屏幕链接的所有屏幕都需要具有可通过链接到“关于”和“设置”屏幕的操作栏。没有这些选项的一个活动(ViewerActivity)在操作栏上显示了一组不同的菜单选项。
我的问题是操作栏只出现在主屏幕(HomeActivity)和ViewerActivity上。在所有其他屏幕上它已经消失了,尽管我没有(明知)调用任何方法使其消失并在每个活动类中放入以下inflater代码:
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.home_screen_menu, menu);
return true;
}
home_screen_menu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/about" android:title="About" android:showAsAction="ifRoom"> </item>
<item android:id="@+id/settings" android:title="Settings" android:showAsAction="ifRoom"></item>
</menu>
我已经搜索了这个问题,我发现的所有类似问题都是通过声明Holo主题或将API版本更改为11或更高来解决的,这两个都是我尝试过的。有人知道我可能忽略了什么吗?
编辑:
为了解释更多,这里有一些截图。我不能在一个问题中发布图片,因为我没有足够高的代表,但这里是imgur链接(第三个有空格,因为它不会让我发布超过2个)。
主屏幕,操作栏和正确的菜单选项可见: http://i.stack.imgur.com/7ogJn.png
登录屏幕,应该有主屏幕的操作栏和相同的菜单选项,但操作栏没有出现: http://i.stack.imgur.com/EQ9VB.png
ViewerActivity,操作栏和新的菜单选项集可见: 一世。堆。 imgur。 com / btf8u。 JPG
编辑2:
主屏幕xml,正在使用操作栏:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/db1_root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/home_btn_feature1"
style="@style/HomeButton"
android:drawableTop="@drawable/6-social-forward"
android:onClick="onLoginClick"
android:text="@string/title_feature1"
android:textSize="@dimen/text_size_large" />
<Button
android:id="@+id/home_btn_feature2"
style="@style/HomeButton"
android:drawableTop="@drawable/7-location-map"
android:onClick="onManageClick"
android:text="@string/title_feature2"
android:textSize="@dimen/text_size_large" />
</LinearLayout>
登录屏幕xml,无法使用操作栏:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:orientation="vertical" >
<TextView
android:id="@+id/nameLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name_title" />
<EditText
android:id="@+id/nameTextBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/passwordLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/password_title" />
<EditText
android:id="@+id/passwordTextBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPassword" />
<TextView
android:id="@+id/GridLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/grid_title" />
<Spinner
android:id="@+id/gridSpinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/grids_array"
android:prompt="@string/grid_title" />
<TextView
android:id="@+id/RegionLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/region_title" />
<Spinner
android:id="@+id/regionSpinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/regions_array"
android:prompt="@string/region_title" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom|center" >
<Button
android:id="@+id/submitButton"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:text="@string/submit_button" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
两个活动都使用完全相同的onCreateOptionsMenu方法指向上面的home_screen_menu xml。