2015-02-17 3 views
0

У меня есть код, который отображает ListView и позволяет щелкнуть элемент, чтобы перейти к одному виду активности. Однако по какой-то причине onClickListener не работает. Я думал, что это может быть связано с тем, что EditText является настраиваемым. Однако, установив это на false, я обнаружил, что это не так.ListView OnClick не работает

listview_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/text" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="5sp" 
android:textSize="15dp" 
android:inputType="textMultiLine"> 


</TextView> 
+1

Опубликовать макет элемента списка ListView – Simas

+0

Отредактировано с помощью макета списка, извините –

+0

Это тоже полезно, но я спросил «listview_item.xml». – Simas

ответ

0

Использование android:descendantFocusability="blocksDescendants" в вашем списке пункт макете

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:descendantFocusability="blocksDescendants"> 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:padding="5sp" 
     android:textSize="15dp" 
     android:inputType="textMultiLine" /> 

</LinearLayout> 

Заменено fill_parent по match_parent, как это рекомендуется.

0

Удалить атрибут inputType на вас TextView расположение:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/text" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:padding="5dp" 
      android:textSize="15sp"/> 

Кроме того, как вы можете видеть, я использую match_parent и wrap_content по ширине и высоте соответственно. fill_parent устарел сейчас.

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

Другое примечание: для размеров текста вы используете sp для ширины, высоты и т. Д. Вы используете dp. Worthy article объясняет это далее.

0

Фоновые задачи после выполнения не будут иметь ручки. Таким образом, ваш слушатель списка будет убит. Вам нужно удалить его из фона и использовать его в своем onCreate. Вы можете установить флаг в postExecute и выполнить реализацию, если это зависит от этого.

+1

'onPostExecute' работает в потоке пользовательского интерфейса. – Simas