как вызвать контекстное меню - PullRequest
8 голосов
/ 22 декабря 2009

Я открываю свое контекстное меню следующим образом:

 private OnClickListener optionsClickListener = new OnClickListener()
 {
  public void onClick( View v )
  {
    registerForContextMenu( v );
    openContextMenu( v );
  }
 };

Как мне позвонить

registerForContextMenu( v );
openContextMenu( v );

из моего обычного обработчика меню здесь:

 public boolean onOptionsItemSelected( MenuItem item )
 {
  switch( item.getItemId() )
  {
    case OPTIONS:
      registerForContextMenu( v );
      openContextMenu( v );
      return true;

где у меня нет View для передачи?

Ответы [ 3 ]

15 голосов
/ 28 мая 2010

Регистрация контекстного меню - это когда вы хотите разрешить пользователю открывать его долгим нажатием. Если вы хотите открыть его программно, вам просто нужно вызвать openContextMenu . Что касается получения представления, вы можете использовать findViewById , если вы дали ему идентификатор, или сохранить его как атрибут в вашем Activity классе.

0 голосов
/ 28 марта 2011

Возможно, вы ищете подменю , в которой вы можете открыть подменю после нажатия на пункт меню.

0 голосов
/ 22 декабря 2009

У вас есть this, который также является представлением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...