4

Androidデバイスのメニューボタンをクリックしてコンテキストメニューを開く方法は?誰か助けてくれませんか。

@Override  
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
    super.onCreateContextMenu(menu, v, menuInfo);  
    menu.setHeaderTitle("Select");  
    menu.add(0, v.getId(), 0, "Gmail");  
    menu.add(0, v.getId(), 0, "Facebook");
    menu.add(0, v.getId(), 0, "Twitter");  
}  

@Override  
public boolean onContextItemSelected(MenuItem item) {  
    if(item.getTitle()=="Gmail"){function1(item.getItemId());}  
    else if(item.getTitle()=="Facebook"){function2(item.getItemId());}  
    else if(item.getTitle()=="Twitter"){function3(item.getItemId());}  

    return true;  
}  

メニューボタンをクリックして上記のコンテキストメニューを開くにはどうすればよいですか?

4

1 に答える 1

4
Are you sure you want to open context Menu on Click of Menu button?

なぜなら、コンテキストメニューは特定のビュー用であり、

コンテキストメニューは、UIの特定のアイテムまたはコンテキストフレームに影響を与えるアクションを提供します。任意のビューにコンテキストメニューを提供できますが、ほとんどの場合、ユーザーが各アイテムに対して直接アクションを実行できるListView、GridView、またはその他のビューコレクションのアイテムに使用されます。

ロングクリックでコンテキストメニューを表示するには、ほとんどのクライアントが呼び出しregisterForContextMenu(View)てオーバーライドする必要がありますonCreateContextMenu(ContextMenu, View, ContextMenu.ContextMenuInfo)

デバイスのメニューボタンには、オプションメニューを使用できます

アップデート:

私はこれを試したことはありませんが、次のようなことができます。

  1. デバイスのメニューボタンプレスイベントを処理し、

    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_MENU) {
             // ........
         }
        return true;
     }
    
  2. その中に線を入れて、

    this.openContextMenu(view); // Here view is reference for which you have a register contect menu.. 
    
于 2012-05-16T09:12:42.937 に答える