Пользовательское событие щелчка элемента ListView не работает

Мое приложение поддерживает соответствие требованиям ADA. Для этого я добавил

 android:focusable="true"

свойство для пользовательских ListView элементов (3-4 TextView). Но после этого мое событие щелчка элемента ListView не работает. Когда я удалил вышеуказанное свойство из элементов списка, он работает нормально. Но для соответствия требованиям ADA мне это нужно. Как я могу решить эту проблему?

РЕДАКТИРОВАТЬ:

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:nextFocusForward="@+id/city"
        android:text="****"
        android:focusable="true"
        android:textColor="@android:color/black"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/city"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:nextFocusForward="@+id/address"
        android:text="5145 N"
        android:focusable="true"
        android:textColor="@android:color/black" />

    <TextView
        android:id="@+id/address"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TX 78731"
        android:focusable="true"
        android:textColor="@android:color/black" />

</LinearLayout>

person andro-girl    schedule 20.06.2014    source источник
comment
строка списка с текстом редактирования? Попробуйте это stackoverflow .com/questions/23602924/   -  person SathishKumar    schedule 20.06.2014
comment
попробуй поменять на false   -  person Shailendra Madda    schedule 20.06.2014
comment
не могли бы вы опубликовать свой код?   -  person Haresh Chhelana    schedule 20.06.2014


Ответы (2)


в текстовом виде вашего макета инфлятора просто добавьте:

android:focusable="false"
android:focusableInTouchMode="false"

и в родительском макете вашего инфлятора, то есть в относительном макете инфлятора, добавьте:

android:descendantFocusability="blocksDescendants" 
person Pankaj Arora    schedule 20.06.2014

Вы можете удалить приведенную выше строку из своего кода и указать android:clickable="false" и android:focusable="false" для всего вашего текстового представления, поэтому ваши текстовые представления не будут иметь фокуса и кликов, поэтому ваш щелчок по элементу будет работать.

person Pratik Dasa    schedule 20.06.2014
comment
но если я удалю android:focusable=true, мое приложение не будет поддерживать ADA. - person andro-girl; 20.06.2014
comment
Я добавил этот флаг, чтобы сделать мое приложение совместимым с ADA. Если есть какой-либо другой способ сделать его совместимым с ADA, я готов удалить это, иначе нет. - person andro-girl; 20.06.2014
comment
Соответствует требованиям ADA, я не понял, не могли бы вы объяснить мне? - person Pratik Dasa; 20.06.2014
comment
ADA расшифровывается как Американский закон об инвалидах. Это означает, что слепые люди должны иметь возможность использовать наше приложение. В IOS есть функция, называемая Voice Over. Таким образом, я должен сделать свое приложение полезным и для слепых. Для этого каждый компонент в приложении должен быть фокусируемым и содержать описание контента. - person andro-girl; 20.06.2014
comment
@seethalakshmi хорошо, спасибо за объяснение. Короче говоря, вам нужно, чтобы все компоненты были фокусируемыми, верно? - person Pratik Dasa; 20.06.2014
comment
если жалоба ADA возможна без установки фокусируемого флага, я готов удалить этот флаг. - person andro-girl; 20.06.2014
comment
@seethalakshmi в этом случае вам нужно использовать эти атрибуты, но с каким-то другим шаблоном, например, ниже ответ Дева, вы можете попробовать. - person Pratik Dasa; 20.06.2014