3

何らかの理由で、アプリがコンテンツを読み込んでいるときにメニューボタンを長押しすると、戻るキーを押したときと同じように停止します。

メニューボタンをこのように動作させたくないので、私の質問は次のとおりです。

メニューボタンを完全に無効にするにはどうすればよいですか?私は自分のアプリでそれを必要としないので、オフにしたいだけです。

私は試した:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){

     if (keyCode == KeyEvent.KEYCODE_BACK){
        onBackPressed();
     }


    if (keyCode == KeyEvent.KEYCODE_MENU){
        return true;
    } 
    else{
        return super.onKeyDown(keyCode, event); 
    }

}

メニューボタンはまだ機能しています...

どんな助けでもありがたいです!ありがとう。

4

5 に答える 5

10

メニューを表示するには true を返す必要があります。false を返すと表示されません。だから私はこれがうまくいくと思います:

@Override
 public boolean onPrepareOptionsMenu (Menu menu) {
     .... .....
     return false;
 }
于 2012-07-31T09:17:13.127 に答える
3

falseを返す必要があります。

@Override
public boolean onMenuOpened(final int featureId, final Menu menu) {
    super.onMenuOpened(featureId, menu);
    return false;
}
于 2015-05-28T05:58:12.480 に答える
0

あなたが投稿したものはうまくいくはずです、
それでもこれを試してみてください、うまくいくはず です

@Override  
public boolean onKeyDown(int keyCode, KeyEvent event) {  
     final int keyCode = event.getKeyCode();  
     if (keyCode == KeyEvent.KEYCODE_MENU){
         return true;
     } 

     return super.onKeyDown(keyCode, event); 
}
于 2015-10-02T06:29:21.827 に答える
0
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
     return (keyCode == KeyEvent.KEYCODE_MENU ? true : super.onKeyDown(keyCode, event));
}
于 2014-12-02T07:05:07.600 に答える
0

メニューボタンも無効にする必要がありました。次の行を追加しました。

public boolean dispatchKeyEvent(KeyEvent event) {
   return true;
}

これは基本的に、押されたすべてのボタンが既に処理されていることを OS に通知するため、アクションは実行されません。onCreate メソッドの後に追加します。

于 2014-09-26T15:20:52.617 に答える