2012-03-06 17 views
6

私が開発しているゲームでは、メニューボタンを押すと、ゲーム内のメニューがポップアップします。しかし、私は最近、Androidの新しいバージョンにはメニューボタンがなく、代わりにアクションバーがあることがわかりました。アクションバーとメニューボタンの両方を処理する方法は?

実際のAndroidメニューは使用していません。私がやっているのは、メニューボタンが押されたことを検知し、ゲーム内からイベントを処理することだけです。つまり、私が必要とするのは、ユーザーが押すことができるものであり、押されたことを検出することです。

私の質問は、どうすればメニューボタンと新しいアクションバーの両方をサポートできますか? APIレベル7の最新版をサポートするようにしたいと思います。

UPDATE

さて、that articleを読んだ後、私は私の質問を修正してくださいしたいと思います。それは、 "システムのナビゲーションの横にアクションのオーバーフローボタンを追加する"と述べた。私のマニフェストはandroid:minSdkVersion = "7" android:targetSdkVersion = "13"ですが、エミュレータにオーバーフローボタンは表示されません。エミュレータはスキンを備えたAPI 14です。

+0

今は注意が必要です。デバイスにはもうメニューボタンがありません。 – SteeveDroz

+0

アクションバーを使用して(actionbar compactで)、onKeyDownをオーバーライドし、 'keyCode == KeyEvent 'をチェックします。KEYCODE_MENU' – sherpya

答えて

3

This post in the Android Developers blog古いメニューボタンから新しいAcのデザインへの移行についての良い議論がありますアクションバーアクションオーバーフロー list。

また、プレレベル11から新しいアクションバーに移行する際にコードを処理する方法に関するいくつかの具体的な提案も含まれています。参考になるかもしれませんが、特定のアプリケーションでは、アクションバーを表示するかどうかを決定する必要があります。それ以外の場合は、ゲームインターフェイスにボタンを追加して、メニューボタンの機能を持つデバイス上のメニューボタンの機能を複製することができます。

+2

この記事を読んだら、私の質問に言いたいことがあります。それは、 "システムのナビゲーションの横にアクションのオーバーフローボタンを追加する"と述べた。私のマニフェストは 'android:minSdkVersion =" 7 "android:targetSdkVersion =" 13 "'ですが、私のエミュレータにオーバーフローボタンは表示されません。エミュレータは、スキンWSVGAを使用したAPI 14です。 –

+1

@JesseJうん、まったく同じ問題がある。 – HRJ

+0

アクションオーバーフローボタンはどこを探していますか?レベル「13」では、システムナビゲーションの右側(画面の下部にあり、アクションバーには表示されません)に表示されます。レベル「14」を目標にしてみてください。あなたはアクションバーでそれを取得する必要があります。また、アクションバーがまったく表示されないように思えます。 – PaulP

2

新しいバージョンのAndroidにはメニューボタンがあります(下記の引用符を参照)。私はあなたが最善の選択肢は、アクションバーを隠すだけで、ゲームは古いAndroidバージョンと同じ方法でメニューボタンを使用すると思う。 Android 4.0 Compatibility Definition

7.2.3から引用

。ナビゲーションキー ホーム、メニュー、および戻る機能は、Androidナビゲーションのパラダイムにとって不可欠です。

デバイスの実装では、アプリケーションを実行しているときに常にこれらの機能をユーザが利用できるようにする必要があります。

これらの機能は、専用の物理的なボタンを介して実装されてもよい(例えば、機械的または静電容量式タッチボタンなど)であってもよい は、専用のソフトキー、ジェスチャー、タッチパネルを用いて実現4.0両方の実装をサポートetc.Android。

そして: targetSdkVersion < = 10とは、メニューキーを提示すべきではない場合

デバイスの実装は、アプリケーションのメニューキーを提示しなければならない場合 targetSdkVersion> 10

+0

私のプログラムは 'onKeyDown'を通してメニューボタンを探します。物理的なメニューボタンがない場合、どのように機能させるのですか?メニューボタンがない場合は、どうすればメニューボタンを表示させることができますか? –

+0

ソフトキーボタンを押してもonKeyDownが生成されない場合は、わかりません。これをテストできる物理的なデバイスがありますか? –

+2

私の物理的な携帯電話はAndroid 2.2で、私はソフトメニューのボタンを見ていません。4.0 –

関連する問題