Эй, ребята, я смотрел приложение "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);
}
Может ли кто-нибудь сказать мне, как я могу получить идентификатор элемента, щелкнувшего по списку из этой функции? Я действительно могу использовать какую-то помощь здесь :)
Вы должны зарегистрировать 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)
У меня была та же проблема на некоторое время, и выяснилось, что у меня была onMenuitemselected() в моей деятельности, и это слушало пункт контекстного меню, а не контекстный выбор(), надеюсь, что это поможет.