Intereting Posts
Как очистить edittext при onclick на кнопке Раздувание макета в пользовательском контроле – как? Чтение текстового файла с помощью InputStream Android WebView со встроенным видео с YouTube, полноэкранная кнопка замораживает видео Android Maven Не удалось найти инструмент 'aapt' Android – сбой при загрузке библиотеки Класс данных Котлина RealmObject Android WebView выбрасывает «запросы на кросс-поиск, поддерживаемые только для исключения http» при попытке загрузить ресурс с диска Кабель передачи данных USB в Android Связывание устройств BLE автоматически удаляется в Android ActionBar Шерлок Пункт меню OnClick Android M – проверить разрешение времени выполнения – как определить, проверен ли пользователь «Никогда не спрашивать снова»? Android. Прокрутка 2 списка вместе Android – намерение Facebook посетить определенную страницу Facebook? Мне нужно вызвать HttpURLConnection.disconnect после окончания использования

Android LongClickListener для элементов группы ExpandableListView

Я создал ExpandableListView с помощью этого руководства: link . Я понимаю код более или менее и пытаюсь установить longclicklistener в группах.

На дочерние элементы уже есть setOnChildClickListener, и мне удалось установить для них longclicklistener:

exList.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { if (ExpandableListView.getPackedPositionType(id) == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { groupPosition = ExpandableListView.getPackedPositionGroup(id); childPosition = ExpandableListView.getPackedPositionChild(id); //[....] return false; } }); 

Как установить longclicklistener на элементы группы?

Я знаю, что код трудно читать, поэтому я создал образец проекта и загрузил его сюда . У этого ребенка нет onlongclicklistener, так как это почти оригинал из вышеупомянутой ссылки. Я был бы признателен, если бы кто-то помог мне с этим.

Solutions Collecting From Web of "Android LongClickListener для элементов группы ExpandableListView"

Элементы группы являются подмножеством всех элементов, поэтому вышеприведенный метод следует вызывать в любом случае. Затем вы должны использовать getPackedPositionType, как указано выше, чтобы определить, выбран ли выбранный элемент, элемент или нуль.

Код для этого:

 exList.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { int itemType = ExpandableListView.getPackedPositionType(id); if ( itemType == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { childPosition = ExpandableListView.getPackedPositionChild(id); groupPosition = ExpandableListView.getPackedPositionGroup(id); //do your per-item callback here return retVal; //true if we consumed the click, false if not } else if(itemType == ExpandableListView.PACKED_POSITION_TYPE_GROUP) { groupPosition = ExpandableListView.getPackedPositionGroup(id); //do your per-group callback here return retVal; //true if we consumed the click, false if not } else { // null item; we don't consume the click return false; } }); 

Если это группа, вы будете использовать getPackedPositionGroup, как указано выше, чтобы получить идентификатор группы, который долгое нажатие. Если это элемент, вы будете использовать комбинацию getPackedPositionGroup и getPackedPositionChild.