2016-06-01 6 views
1

Объект View from from onListItemClick(ListView listView, View view, int position, long id) is RelativeLayout.ListFragment onListItemClick - как узнать, какой компонент щелкнул

Однако, я хочу знать, какой компонент внутри RelativeLayout щелкнут, а также для расширенной функциональности.

Как это сделать?

+0

https://developer.android.com/training/material/lists-cards.html –

+0

Этот ответ показать, почему использовать recyclerview вместо Listview, я думаю, recyclerview будет решать ваша проблема http://stackoverflow.com/a/24933117/2242903 –

+1

'int position'? –

ответ

1

Вы должны добавить слушателя каждый вид в RelativeLayout вы хотите слушать. Если вы хотите использовать один прослушиватель, создайте его и добавьте его ко всем просмотрам, которые вы хотите прослушать. В вашем методе onClick вы можете поместить view.getId() в оператор switch и определить, на какой из них щелкнуть.

OnItemClickListener не решит вашу проблему. Ни переход на RecyclerView. Они работают одинаково. Это все о вашем адаптере. Если вы используете адаптер custom, не имеет значения, вы используете ListView или RecyclerView. В вашем адаптере у вас есть доступ к вашим компонентам, которые находятся в вашем RelativeLayout. Создайте слушателя, как я объяснил выше, и добавьте их в свои представления.

Не то же самое, но подобный вопрос: Android: Add event listeners to every item in a ListView

+0

Большое спасибо за ваш ответ. Это именно то, что мне нужно. – user3635998

2

Этот ответ показать, почему использовать recyclerview вместо Listview, я думаю, recyclerview будет решить вашу проблему stackoverflow.com/a/24933117/2242903

+1

Бит сложный, и отсутствие полностью работающего образца кода с несколькими компонентами не очень приятно ... Но спасибо, что указали мне в правильном направлении. – user3635998

+0

«ListView» и «RecyclerView» похожи. Это не решит его проблему. –

+0

@GokhanArik вы прочитали этот anser stackoverflow.com/a/24933117/2242903? –

Смежные вопросы