2012-05-16 5 views
4

Как открыть контекстное меню при нажатии кнопки меню на устройстве Android? Может ли кто-нибудь мне помочь.Открыть контекстное меню при нажатии кнопки меню в 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; 
} 

Как открыть указанное контекстное меню при нажатии кнопки меню?

+3

в контекстном меню вы должны пройти View в качестве аргумента. поэтому его невозможно. и вам нужно открыть контекстное меню на кнопке меню, а затем почему вы не используете прямое меню опций? –

ответ

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

Потому что, Контекстное меню для конкретного зрения,

Контекстное меню предлагает действия, которые влияют на конкретный предмет или контекст кадра в пользовательском интерфейсе. Вы можете предоставить контекстное меню для любого вида, но чаще всего они используются для элементов в списках ListView, GridView или других коллекций представлений, в которых пользователь может выполнять прямые действия над каждым элементом.

Чтобы показать контекстное меню по длинному клику, большинство клиентов захотят позвонить registerForContextMenu(View) и переопределить onCreateContextMenu(ContextMenu, View, ContextMenu.ContextMenuInfo).

Для кнопки меню устройства вы можете использовать Options Menu

Обновление:

Я никогда не попробовать это, но вы можете сделать что-то подобное,

  1. Ручка кнопка Меню пресс-конференция устройства,

    public boolean onKeyUp(int keyCode, KeyEvent event) { 
        if (keyCode == KeyEvent.KEYCODE_MENU) { 
         // ........ 
        } 
        return true; 
    } 
    
  2. Put линия внутри него,

    this.openContextMenu(view); // Here view is reference for which you have a register contect menu..