Запретить закрытие контекстного меню при нажатии на элемент (в частности, флажок) - PullRequest
2 голосов
/ 25 февраля 2010

Если у меня есть проверяемый элемент в контекстном меню или обычном меню, как я могу предотвратить закрытие меню при выборе элемента?

Ответы [ 3 ]

0 голосов
/ 10 октября 2013

Это зависит от того, какую библиотеку вы используете для создания меню (ABS / ABC /?), Но, как правило, я думаю, вам просто нужно будет return false при обработке щелчка элемента. Значение return позволяет системе узнать, был ли обработан щелчок или нет. Обычно вы устанавливаете его на true, тогда система по умолчанию закрывает меню. Вот пример для контекстного меню:

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    switch (item.getItemId()) {
        case R.id.edit:
            editNote(info.id);
            return true; // return false here
        case R.id.delete:
            deleteNote(info.id);
            return true; // or here
        default:
            return super.onContextItemSelected(item);
    }
}
0 голосов
/ 25 марта 2017

В моем случае добавление этих двух строк сработало:

item.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
item.setActionView(new View(getApplicationContext()));
0 голосов
/ 18 марта 2010

Используйте следующее свойство:

<MenuItem IsCheckable="True" StaysOpenOnClick="True"...
...