Intereting Posts
Android Eclipse: какой самый простой способ дублировать класс? Убедитесь, что ScrollView выше, чем экран / прокручиваемый Java.lang.NoClassDefFoundError: сбой разрешения: Landroid / support / v4 / animation / AnimatorCompatHelper Удаленное связывание MediaServer Объект камеры умер – только на KITKAT Разрешить все ссылки «market: //» изнутри веб-браузера, чтобы открыть магазин Google Play Как издеваться над вложенным объектом, который не объявлен в модуле? Отношение парса между пользовательскими и установочными классами Android – как найти несколько просмотров с общим атрибутом Утилита Historian.par батареи L батареи отсутствует Путаница по жизненному циклу активности Android Как установить адаптер в случае нескольких текстовых просмотров для списка? Как синхронизировать электронную почту приложения электронной почты с почтой с помощью java-почты в android Как взаимодействовать с различными браузерами Android (получить URL) Делают ли темы добавление большого количества накладных расходов в приложение? Как найти журналы на андроид-студии?

Как добавить OnTouchListener в элементы списка?

Я кодирую простое приложение для Android, которое содержит список, заполненный SimpleCursorAdapter.

private void populateList() { c = this.cDAO.fetchAllContacts(); startManagingCursor(c); String[] from = new String[]{ContactsDAO.KEY_NOME}; int[] to = new int[]{R.id.nome1}; SimpleCursorAdapter notes = new MyListAdapter(this, R.layout.list_row, c, from, to, activitySwipeDetector); setListAdapter(notes); } 

Xml для списка и list_row:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listaBottom" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#B5E61D" > <ListView android:id="@+id/android:list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#B5E61D" android:divider="#80FFFF" android:dividerHeight=".5dp" /> </LinearLayout> 

 <?xml version="1.0" encoding="utf-8"?> <TextView android:id="@+id/nome1" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="30dp" android:textColor="#5289DC" /> 

Кроме того, я установил OnTouchListener в listview, чтобы прослушивать прокрутки и щелчки событий, которые работают правильно, за исключением того факта, что он не прослушивает события, которые происходят в любом из элементов в списке. Проведя некоторые исследования, я обнаружил, что мне нужно расширить SimpleCursorAdapter, чтобы добавить слушателя ко всем элементам. Вот мой расширенный класс:

 public class MyListAdapter extends SimpleCursorAdapter { ActivitySwipeDetector asd; public MyListAdapter(Context context, int layout, Cursor c, String[] from, int[] to, ActivitySwipeDetector asd) { super(context, layout, c, from, to); this.asd = asd; } public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); TextView row = (TextView)view.findViewById(R.id.nome1); row.setOnTouchListener(asd); return view; } } 

Это не работает. Кто-нибудь имеет представление о том, как заставить его работать?

EDIT: просто чтобы уточнить, все, что я хочу, это то, что жесты, сделанные в элементах списка (проведите по экрану влево, проведите по экрану вправо, щелкните). Пока, если я делаю жест в пустой части списка (под элементами), слушатель ловит это событие, но если я делаю это по элементу, салфетка не распознается.

Код, который я написал в этом вопросе, отлично работает. Проблема была в моем слушателе касания, который не выполнял действия, запрошенные событиями жестов.