Мой вопрос:
Прежде чем я пойду и использую OnLongClickListener, есть ли лучший способ передать информацию о том, «что щелкнули, чтобы создать это контекстное меню», когда у вашего представления списка есть собственный адаптер?
Вот некоторые детали:
Обычно мой код может делать что-то вроде этого:
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
а затем продолжай и будь счастлив.
Однако с тех пор, как я представил собственный адаптер, item.getMenuInfo () имеет значение null.
Это большая проблема, потому что мой код больше не знает, какой элемент был нажат. (Мой пользовательский адаптер делает каждую строку списка флажком и текстовым представлением)
Я попробовал это, но не получилось:
Создал мой собственный специальный AdapterContextMenuInfo (называемый «HasAViewMenuInfo»), но когда я передаю его в этом методе, он оказывается нулевым в меню
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, new HasAViewMenuInfo(v));