Страницы

Поиск по вопросам

пятница, 21 июня 2019 г.

Как на AlertDialog повесить OnItemLongClickListener?

Вызывается Dialog. Обработчик на нажатие повесил(onClick). Как повесить обработчик событий на LongClick и можно ли тут так сделать? Буду рад любой помощи или замечанию!
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new lertDialog.Builder(getActivity()); builder.setTitle("Список: ") .setAdapter(adapter, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { loadList((anyArrayList.get(which))); } });
return builder.create(); }


Ответ

Согласно en-SO надо повесить слушатель показа диалога на экране. В этот момент можно достучаться до его внутреннего ListView и уже ему назначить слушатель:
final AlertDialog ad = builder.create(); //don't show dialog yet ad.setOnShowListener(new OnShowListener() { @Override public void onShow(DialogInterface dialog) { ListView lv = ad.getListView(); //this is a ListView with your "buds" in it lv.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { Log.d("Long Click!","List Item #"+position+"was long clicked"); return true; } }); } }); ad.show();

Комментариев нет:

Отправить комментарий