TextView и Button в каждой строке и onListItemClick()

У меня есть ListView с некоторыми элементами на нем. Каждая строка имеет TextView и кнопку. Это выглядит так:

| Некоторые тексты в строке (Button) |

Теперь, когда я нажимаю на этот текст, ничего не происходит. Просто никто не вызывает функцию. Но когда я нажимаю на кнопку, я могу обработать событие. Я использую onListItemClick()

Итак, что я должен использовать вместо этого TextView, чтобы иметь возможность обрабатывать событие (когда я нажимаю на текст)?

До этого у меня был только один TextView в каждой строке, и когда я нажимал на строку, все работало нормально (вызывается onListItemClick()).

Заранее благодарю вас!

Ответ 1

добавьте свойство focusable="false" к вашему TextView::

<TextView
...
...
        android:focusable="false"
        />

и, вероятно, вам нужно будет сделать то же самое с другими элементами внутри вашего ListView.

Ответ 2

Проблема заключается в том, что ListView и кнопка сражаются за фокус. Как правило, только один из двух может получать фокус (и, следовательно, кликнуть). В вашем случае кнопка является фокусируемой.

Чтобы настроить это, вы можете играть с descendantFocusability свойство ListView.

Что вы пытаетесь выполнить, нажав кнопку в элементе ListView? Вы хотите, чтобы что-то другое произошло, когда вы нажимаете кнопку, vs, когда вы нажимаете элемент списка за пределами кнопки?