По большому счету, контекстные меню используют те же принципы, что и меню опций. Два основных отличия заключаются в том, как вы заполняете меню и как вы получаете информацию о выборе меню.
Сначала вам нужно указать, какие виджеты в вашей активности имеют контекстные меню. Для этого вызовите registerForContextMenu() из вашей активности, указав виджет, которому необходимо контекстное меню.
Далее вам нужно реализовать функцию onCreateContextMenu(), которой, помимо всего прочего, передается View, предоставленный в registerForContextMenu(). Вы можете использовать его для определения того, какое меню нужно создать, если у вашей активности их несколько.
Метод onCreateContextMenu() получает само контекстное меню, Вид, с которым связано контекстное меню, и ContextMenu.ContextMenuInfo, который сообщает вам, какой элемент в списке пользователь нажал и удерживал, если вы хотите настроить контекстное меню на основе этой информации. Например, вы можете переключить выбор меню с возможностью проверки, основываясь на текущем состоянии элемента.
Также важно отметить, что функция onCreateContextMenu() вызывается каждый раз, когда запрашивается контекстное меню. В отличие от меню опций (которое создается только один раз для каждого действия), контекстные меню отбрасываются после их использования или удаления. Следовательно, вы не хотите хранить предоставленный объект ContextMenu; просто полагайтесь на возможность перестроить меню в соответствии с потребностями вашей деятельности по требованию на основе действий пользователя.