4

何かを削除することで、Androidプロジェクトの1つを台無しにすることができました(疑いがあります)。以下は私のマニフェストとメニューリソースです。何らかの理由で、アプリケーションの実行時にアクション バーにメニュー ボタンが表示されません。

<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 ボタンがないデバイスのアクション バーにのみ表示されます。デバイスまたはエミュレーターの MENU ボタンを押してみてください。

于 2012-09-07T16:10:12.113 に答える
6

OK、問題の原因を突き止めました。誰かが以前にこの問題に遭遇したことがある場合、元の投稿で十分な情報を提供していなかった可能性があります。

私が犯した致命的なミスは

cp -r res/values res/value-en

すべてのロケールに対してこれを行いました。これにより、styles.xml ファイルもコピーされました。これをディレクトリに置くと、この非常に厄介な頭痛が発生しました!

それを削除し、ディレクトリとディレクトリにstyles.xmlファイルのみを配置すると、問題が修正されました。res/valuesres/values-v*

于 2012-09-10T09:45:05.727 に答える
0
 android:showAsAction="never" 

この行を次のように変更します。

 android:showAsAction="ifRoom" 
于 2015-08-16T22:17:21.540 に答える
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 に答える