контекстное меню не работает

1

Эй, ребята, я смотрел приложение "Diaro" и "Мой дневник" на Android-рынке. Элементы отображаются в виде списка, а при длительном нажатии на элемент открывается контекстное меню с различными параметрами (например, редактировать, удалять и т.д.). Я попытался реализовать то же самое в своем приложении, что и похожее. Но проблема заключается в onContextItemSelected(MenuItem item) Я не могу получить содержимое onContextItemSelected(MenuItem item). Здесь приведен код для onContextItemSelected(MenuItem item):

@Override
public boolean onContextItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
            .getMenuInfo();
    switch (item.getItemId()) {
    case R.id.edit:


        break;v

          // rest of the codetion
    }

    return super.onContextItemSelected(item);
}

Может ли кто-нибудь сказать мне, как я могу получить идентификатор элемента, щелкнувшего по списку из этой функции? Я действительно могу использовать какую-то помощь здесь :)

Теги:

2 ответа

3
Лучший ответ

Вы должны зарегистрировать yourView для contextMenu, например:

list = getListView();
registerForContextMenu(list);

и вы должны использовать onCreateContextMenu для его сборки

@Override
public void onCreateContextMenu(ContextMenu contextMenu,
                                View v,
                                ContextMenu.ContextMenuInfo menuInfo) {
    AdapterView.AdapterContextMenuInfo info =
            (AdapterView.AdapterContextMenuInfo) menuInfo;
    selectedWord = ((TextView) info.targetView).getText().toString();
    selectedWordId = info.id;

    contextMenu.setHeaderTitle(selectedWord);
    contextMenu.add(0, CONTEXT_MENU_EDIT_ITEM, 0, R.string.edit);
    contextMenu.add(0, CONTEXT_MENU_DELETE_ITEM, 1, R.string.delete);
}

у вас есть элемент listView в вашем контексте titleMenu, и он id в selectedWordId

подробнее см. эту ссылку: обнаружение выбранного элемента (в ListView) порождало ContextMenu (Android)

  • 0
    У меня нет проблем с надуванием меню @Alish, проблема заключается в следующем. Проблема заключается в том, что, если пользователь щелкнет опцию редактирования в контекстном меню, как пользователь получит rowId элемента, по которому щелкнул общественный void onCreateContextMenu (меню ContextMenu , View v, ContextMenuInfo menuInfo) функция
  • 0
    И под идентификатором я подразумеваю идентификатор элементов в представлении списка,
Показать ещё 2 комментария
0

У меня была та же проблема на некоторое время, и выяснилось, что у меня была onMenuitemselected() в моей деятельности, и это слушало пункт контекстного меню, а не контекстный выбор(), надеюсь, что это поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню