4

通过删除一些东西(我怀疑),我设法搞砸了我的一个 Android 项目。以下是我的清单和菜单资源。由于某种原因,当我运行应用程序时,我的操作栏没有显示菜单按钮。

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_settings"
    android:title="@string/menu_settings"
    android:orderInCategory="100"
    android:showAsAction="never" />
</menu>

显现:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp"
android:versionCode="6"
android:versionName="2.1.0" >

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MyActivity"
        android:label="@string/title_activity" 
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

我的活动代码中也有这个

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.menu_settings:
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

但是在应用程序运行时仍然没有创建菜单/选项按钮。有任何想法吗?

编辑 1

经过一些重大试验后,我发现向我的应用程序添加本地化支持导致了这个问题。

我删除了所有本地化的 values-* 目录并且操作栏回来了,然后我将 values 目录复制到 values-en 并在我的英语设备上运行它。然后操作栏消失了。这对任何人都有启发吗?

4

4 回答 4

11

屏幕溢出菜单按钮仅出现在缺少屏幕外菜单按钮的设备的操作栏中。尝试按设备或模拟器上的 MENU 按钮。

于 2012-09-07T16:10:12.113 回答
6

好的,找出导致问题的原因,如果有人以前遇到过这个问题,我可能没有在我的原始帖子中提供足够的信息。

我犯的致命错误是

cp -r res/values res/value-en

我对所有语言环境都这样做了,这也复制了styles.xml 文件。在目录中有这个会导致这个非常烦人的头痛!

删除它并仅将styles.xml文件放在res/values目录和res/values-v*目录中解决了该问题。

于 2012-09-10T09:45:05.727 回答
0

我认为您的onCreateOptionsMenu-MenuInflater是问题,更改为以下内容,看看是否适合您:

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.activity, menu);
    return true;
}
于 2012-09-07T15:18:02.643 回答
0
 android:showAsAction="never" 

将此行更改为:

 android:showAsAction="ifRoom" 
于 2015-08-16T22:17:21.540 回答