2013-05-31 6 views
0

У меня проблема с ContextMenu. У Activity есть ListView. Нажав и удерживая элемент в этом ListView, ContextMenu должен появиться с элементами «Удалить» и «Push». Вот код я использую:ListView ContextMenu

registerForContextMenu(list); 

прекрасно работает до сих пор.

Проблема заключается в том, что когда я нажимаю кнопку «Настройки» на моем S3, появляется также ContextMenu. Что в этом случае не имеет смысла, поскольку элемент ListView не выбран. Можно ли это подавить? (Я не нужен ContextMenu для всей деятельности, только для элементов в ListView в.)

Спасибо, Marc

ответ

0

Вы должны проверить menuInfo и решить, будет ли он создан для элемента в списке, или это произвольное создание, что вы говорили, или вы можете проверить view1:

@Override 
public void onCreateContextMenu(ContextMenu menu, View view1, 
          ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, view1, menuInfo); 
    if(manuInfo is something){ // bla bla or you can check view1 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.context_menu, menu); 
    }else{ 
     return; 
    } 
} 

это должно работать, Лемм знать, если нет.

+0

Спасибо. Я сделал следующее: 'if (view1 == list) {...}'. Но это все еще не работает. ContextMenu по-прежнему появляется, нажав кнопку «Настройки». По отладке я увидел, что onCreateContextMenu() даже не вызывается после нажатия этой кнопки. – Luxori

0

Найдено проблемы:

Нажатием "Настройки-кнопки" на моем S3 не onCreateContextMenu(), но onCreateOptionsMenu() вызывается, где он Сайед: getMenuInflater().inflate(R.menu.myActivity, menu);. После удаления этой линии все работает нормально.

Смежные вопросы