У меня нет примера кода, показывающего технику - мой лучший пример - это то, что я сделал для клиента-консультанта.
Однако позвольте мне указать вам этот пример проекта , который использует контекстные меню и использует его в качестве основы для этого объяснения.
Вам необходимо вернуть настроенное меню в onCreateContextMenu()
. Если вы всегда возвращаете одно и то же меню, вы всегда увидите одно и то же меню. Чтобы определить, какое меню отображать, вам нужно знать, какой элемент списка был нажат. В случае контекстного меню для ListView
, вы можете привести ContextMenu.ContextMenuInfo
, предоставленный к onCreateContextMenu()
, к AdapterView.AdapterContextMenuInfo
. Этот объект может сообщить вам позицию и _ID
элемента в списке, по которому было проведено длинное касание, поэтому вы можете выбрать правильное меню.
В приведенном выше примере кода я выполняю приведение к onContextItemSelected()
, поэтому я могу знать, какой элемент удаляет пользователь. Тем не менее, тот же актерский состав работает в onCreateContextMenu()
.