У меня есть несколько объектов GridView, таких как «battlegrid» и «handfield», которые создаются в моем PlayGameAcvitity (они являются частями макета, отображаемого во время PlayGameActivity). Сетки сетки динамически заполняются кнопками из пользовательского адаптера, который я написал. Я хотел бы иметь AlertDialog с несколькими вариантами (форма списка от here), если кнопки долго нажаты. Я не уверен, как это сделать, поскольку все примеры, которые я видел, были реализованы в классе активности. Однако мои кнопки LongClickListeners для кнопок находятся внутри кода адаптера.Как написать AlertDialog для кнопок, динамически генерируемых в GridView?
Вот часть кода адаптера в battlegrid GridView в:
public View getView(int position, View convertView, ViewGroup parent)
{
Button btn;
.
.
.
btn.setLongClickable(true); //enable long press
btn.setOnLongClickListener(new OnLongClickListener()
{
@Override
public boolean onLongClick(View v)
{
//TODO: make alertdialog appear and do stuff with what was selected
return true;
}
});
.
.
.
return btn;
}
Код для адаптера «handfield» 's и другие аналогично. Мне нужно открыть AlertDialog со списком опций здесь и реализовать то, что происходит в зависимости от того, что выбрано. AlertDialog, который появляется для кнопки с длинным нажатием в «battlegrid», должен отличаться от того, который появляется для кнопки, нажатой в «handfield». Есть ли способ сделать это? Если это невозможно для AlertDialogs, есть ли что-то еще, что я могу использовать?