自定义ArrayAdapter上的可单击行

时间:2011-04-13 16:51:17

标签: android

我为ListView创建了一个自定义ArrayAdapter,以便使用一些元素自定义列表的行。

我遇到的问题是我无法选择项目,单击时没有任何反应。这是我必须在我的自定义ArrayAdapter中实现的吗?它只有一个构造函数和一个getView方法。当我实例化我的列表并实现onListItemClick时,它被忽略,所以我认为它与我的自定义适配器有关...我已经通过示例进行了研究,但我什么都没找到。

我该怎么办?

编辑:在每行中我使用的是Checkbox,以及包含TextViews的LinearLayout。此LinearLayout是应该可选择的。

2 个答案:

答案 0 :(得分:6)

我认为问题是Android不允许您选择具有可聚焦元素的列表项。

将lisview中的复选框设置为“无法对焦”。

详情请参阅:

android:focusable="false"

Android custom ListView unable to click on items

<checkbox>.setFocusable(false)

http://groups.google.com/group/android-developers/browse_thread/thread/dc070331341ef34/fa6d4356118a1f0d?lnk=gst&q=button+listview+clicks#fa6d4356118a1f0d

答案 1 :(得分:1)

我在这个问题上一直在努力奋斗!这就是你的listitem应该是layout / xml的样子:

此行应位于您正在使用的所有TextView和其他组件上:

android:focusable="false"
android:clickable="false"/> 

我对listitem的layout.xml:

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

    <LinearLayout
    android:orientation="vertical"
    android:layout_width="0dip" 
    android:layout_weight="1"
    android:layout_height="fill_parent">

        <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/textWhiteTheme" 
        style="@style/list_item_wh"
        android:focusable="false"
        android:clickable="false"/>        

    </LinearLayout>
</LinearLayout>