Android自定义单选列表

Android自定义单选列表,android,android-listview,Android,Android Listview,我有一个具有以下布局的自定义listView,我希望它像普通的SingleChoiceListView一样工作。虽然我将listview设置为单选项模式,但单击时,单选按钮不会被选中。我做错了什么? 单行的xml布局为: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:

我有一个具有以下布局的自定义listView,我希望它像普通的SingleChoiceListView一样工作。虽然我将listview设置为单选项模式,但单击时,单选按钮不会被选中。我做错了什么? 单行的xml布局为:

<?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:gravity="center_vertical"
          android:minHeight="?listPreferredItemHeightSmall"
          android:orientation="horizontal"
          android:clickable="true"
          android:focusable="true"
          android:paddingLeft="16dip"
          android:paddingRight="12dip" >
    <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center_vertical"
            android:orientation="vertical" >
        <TextView
                android:id="@android:id/text1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ellipsize="marquee"
                android:gravity="center_vertical|left"
                android:singleLine="true"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="?textColorAlertDialogListItem" />
        <TextView
                android:id="@android:id/text2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ellipsize="marquee"
                android:gravity="center_vertical|left"
                android:singleLine="true"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="?textColorAlertDialogListItem" />

    </LinearLayout>

    <TextView
            android:id="@+id/preco"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:ellipsize="marquee"
            android:gravity="fill"
            android:singleLine="true"
            android:textStyle="bold"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="@color/appgreen" />
    <RadioButton
            android:id="@+id/radio"
            android:layout_width="35dip"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:focusable="false"
            android:gravity="center_vertical"
            android:paddingRight="12dip" />
</LinearLayout>


我认为当您在listview中单击某个项目时,listview会在复选框之前处理此单击。您可以覆盖listView上的onItemClickListener,并在其中通过自定义布局中的FindViewWid查找您的复选框,然后通过编程更改复选框的状态。

使用此选项代替
android.r.layout.simple\u list\u item\u single\u choice
。创建自己的
r.layout.my_single_choice.xml

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:checkMark="?android:attr/listChoiceIndicatorSingle"
    android:gravity="center_vertical"
    android:padding="5dip"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/black"
    android:textStyle="bold" >
</CheckedTextView>


你能用发布XML吗?我试图复制android.R.layout.simple\u list\u item\u 2\u single\u选项的结构,甚至在单选按钮中添加了android:duplicateParentState=“true”,但仍然没有选中。