1

設計上、アクション バーを使用できません。古いメニュー ボタンでは、すべてのメニュー コマンドが特定のメニューに表示されるため、これは重要ではありません。残念ながら、Nexus 4 などの一部のデバイスにはメニュー ボタンがなく、ユーザーはメニューの機能にアクセスできません。

したがって、アクション バー (または物理的なメニュー ボタン) の右上端にあるボタンのように機能する個人用のボタンを含めて、OptionsMenu のすべてのコマンドを自動的に取得したいのですが、再定義せずにこれを行う方法がわかりません。メニューとカスタムボタンメニューの各コマンドのボタンを個別に。

誰かが私を助けることができますか?

4

2 に答える 2

0

私があなたのことを正しく理解しているなら、あなたはあなたの、またはあなたがそれを呼んでいるものは何でもButton開くことを望んでいます. menu.xmlその場合は、PopupMenuを使用できます。これには が必要であることに注意してくださいAPI >= 11。必要な外観と機能を実現するために、独自の「ActionBar」を作成する必要があり、PopupMenuうまく機能しました。これにより、インフレートし、それを として使用できるメソッドをR.menu.your_menu持っています。interfacesmenu

私は自分の機能を他BaseActivityのすべてのスーパークラスであるに入れ、特定の.Activitiesoverride onMenuItemClickActivities

必要なものを誤解している場合はお知らせください。

于 2013-07-02T18:24:51.660 に答える
0

だから、まず第一に、あなたのデザインのものを使うべきだと私は知っていますが、それは実際に使用しActionBarたりActionBarSherlock、新しいアプリケーションに使用したりするためのより良いオプションです. しかし、あなたの質問に正しい答えを出すためには、ホームと戻るボタンの横にある下部のシステム バーにソフトウェア メニュー ボタンを表示する前に、いくつかのことを行う必要があります。

まず、いつものようにメニューを含めます。

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

変更する必要がある 2 番目のことは、次のAndroidManifest.xmlとおりです。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="10" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
        <activity
            android:name="com.example.test.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

この行を見てください:

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="10" />

これは魔法が起こる場所です。targetSdkVersion10 より大きい値を設定すると、アプリがハードウェア メニュー ボタンのないデバイスをサポートし、おそらくActionBarまたは他の方法で使用できることを意味します。

上記のようにすべてを行うと、Nexus4/Nexus7 の画面が次のようになります。

ここに画像の説明を入力

お役に立てれば!

PS。繰り返しになりますが、アプリケーションを構築するには、最新の利用可能な設計ガイドラインとコーディングのベスト プラクティスを使用することを検討する必要があります。

于 2013-07-02T18:31:50.627 に答える