Как Вы реализуете контекстное меню в ListActivity на Android?

Если вы компилируете в командной строке, вы можете фильтровать сообщения с помощью grep``, just filtering out the messages that has unwanted content, like for example grip -v deprecated . You can use | `для отправки вывода в grep, например

your compile command | grip -v deprecated
39
задан pupeno 15 January 2009 в 04:00
поделиться

2 ответа

На onCreate вызове метода registerForContextMenu как это:

registerForContextMenu(getListView());

и затем заполняют меню на onCreateContextMenu (меню ContextMenu, представление View, ContextMenuInfo menuInfo) . menuInfo аргумент может предоставить информацию, о которой объект был долго нажат таким образом:

AdapterView.AdapterContextMenuInfo info;
try {
    info = (AdapterView.AdapterContextMenuInfo) menuInfo;
} catch (ClassCastException e) {
    Log.e(TAG, "bad menuInfo", e);
    return;
}
long id = getListAdapter().getItemId(info.position);

и Вы добавляете пункты меню в обычном способе звонить menu.add:

menu.add(0, MENU_ITEM_ID, 0, R.string.menu_string);

и когда пользователь выбирает опцию, , onContextItemSelected называют. Также onMenuItemSelected и этот факт явно не объяснены в документации кроме сказать использование другого метода для получения вызовов из контекстного меню; просто знайте, не совместно используйте идентификаторы.

На onContextItemSelected можно схватить MenuInfo и таким образом идентификатора объекта, выбранного путем вызова getMenuInfo () :

try {
    info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
} catch (ClassCastException e) {
    Log.e(TAG, "bad menuInfo", e);
    return false;
}
long id = getListAdapter().getItemId(info.position);
74
ответ дан Mac_Cain13 23 September 2019 в 17:30
поделиться

Необходимо также посмотреть Activity.registerForContextMenu (Представление) .

14
ответ дан Romain Guy 23 September 2019 в 17:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: