5

テスト アプリケーションでメニュー オプションを作成しようとしています。

マニフェストでテーマをデフォルトに設定すると、メニューが表示されます (メニューは上部に表示されます)。マニフェストのテーマを NoTitleBar に設定した場合。メニュー オプションが表示されないのですが?

マニフェストでテーマ「NoTitleBar」を設定したときにメニューを取得したい。

修正方法は?

以下は、テストアプリケーションで使用したものです。

マニフェスト付き:

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

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar" >
    <activity
        android:name="com.ssn.menuoptions.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>

メニュー.xml

 <?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:id="@+id/menu_preferences"
      android:title="Preferences" /> 
 </menu>

Java ファイル:

@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;
}

次のようなものを取得することは可能ですか:

file:///C:/Users/Koushik/Downloads/SahayaPictures/fHEQ8.png

メニューを上下に表示するにはどうすればよいですか?

ありがとう!

4

4 に答える 4

2

Activity.setContentView(); の下に次のコードを追加します。

 setContentView(R.layout.activity_detail);
    // set option menu if has no hardware menu key
    boolean hasMenu = ViewConfiguration.get(this).hasPermanentMenuKey();
    if(!hasMenu){
        //getWindow().setFlags(0x08000000, 0x08000000);
        try {
            getWindow().addFlags(WindowManager.LayoutParams.class.getField("FLAG_NEEDS_MENU_KEY").getInt(null));
          }
          catch (NoSuchFieldException e) {
            // Ignore since this field won't exist in most versions of Android
          }
          catch (IllegalAccessException e) {
            Log.w("Optionmenus", "Could not access FLAG_NEEDS_MENU_KEY in addLegacyOverflowButton()", e);
          }
    }
于 2013-08-02T04:02:02.047 に答える
1

アプリにアクション バーが必要ない場合は、このハンドラーを使用してボタンを設定できます。

myButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) { openOptionsMenu(); }
});

myButtonメニューキーのように機能するようになりました。これはフルスクリーン アプリを 4.x に移行する簡単な方法ですが、長期的にはより洗練されたソリューションを探す必要があります。

于 2014-07-18T15:26:40.650 に答える
0

notitlebar テーマを使用すると、メニュー ボタンがあるアクションバーが削除されます。メニューを表示するには、おそらくカスタム テーマを作成する必要があります。何もしていない場合は、少なくともこの属性をいつでも使用できます。android:showAsAction="Never"これにより、メニュー ボタンのある電話を使用しているユーザーは、ボタンでメニューをポップアップできます。

于 2013-07-16T03:06:33.803 に答える