Подтвердить что ты не робот

Событие ListView onClick не запускается с помощью связанного адреса электронной почты

У меня есть прямой список ListView с ListAdapter и настраиваемый метод onItemClick для списка. Элементы ListView доступны для других функций. Однако некоторые из моих элементов ListView содержат адрес электронной почты, который также должен быть доступен для кликов.

Я нашел Linkify и добавил его в текстовое представление адреса электронной почты для документов.

После этого элемент ListView, содержащий такой "интерактивный" текстовый просмотр, теперь больше не доступен для выполнения других функций.

Я попытался добавить OnItemClickListener после создания всего представления, безрезультатно: (

Любая идея о том, как мои элементы ListView можно использовать для кликов, хотя они содержат Linkified textView?


Мои самые глубокие слова, чтобы не искать дальше, прежде чем задавать вопрос. Я нашел ответ на свой вопрос и разместил его как ответ.

4b9b3361

Ответ 1

Решение:

После многого другого поиска (который я уже сделал, но не достаточно далеко), я наконец нашел эту страницу.

Пример кода: Моя страница (LinearLayout, содержащая listView) назначает ListViewAdapter, который создает различные элементы ListView, назначает себя как слушатель OnClick и добавляет ListView:

list.setAdapter(adapter);
list.setOnItemClickListener(this);
addView(list);

ListViewAdapter создает каждый элемент ListView и назначает ему контент, привязывая адреса электронной почты при необходимости:

public View getView(int position, View convertView, ViewGroup parent) {
    View view = layoutInflater.inflate(R.layout.list_item_layout, null);
    TextView textView = (TextView) view.findViewById(R.id.item_text);
    textView.setText(<some email address>);
    Linkify.addLinks(textView, Linkify.EMAIL_ADDRESSES);
}

Решение легко, используя код на странице, которую я нашел. Я создал класс LinkTextView, спускающийся с TextView, и добавил метод, описанный на странице. После вызова Linkify.addLinks выше я добавил утверждение:

textView.setMovementMethod(null);

Элемент ListView и связанный текст теперь снова можно щелкнуть.

Опять же, мои самые глубокие заявления о том, чтобы не искать дальше, прежде чем задавать вопрос для начала.