Android CheckedTextView未被检查

Android CheckedTextView未被检查,android,android-listview,Android,Android Listview,我有一个连接到阵列适配器的简单列表视图。我的列表是多选复选框的列表 首先,我在列表文本视图中使用了android CheckedTextView: public static class MyAdapter extends ArrayAdapter<String> { private List<String> items; public MyAdapter(Context context, List<String> items) {

我有一个连接到阵列适配器的简单列表视图。我的列表是多选复选框的列表

首先,我在列表文本视图中使用了android CheckedTextView:

public static class MyAdapter extends ArrayAdapter<String> {
    private List<String> items;

    public MyAdapter(Context context, List<String> items) {
        super(context, android.R.layout.simple_list_item_multiple_choice, items);

        this.items = items;
    }
     ...
公共静态类MyAdapter扩展了ArrayAdapter{
私人清单项目;
公共MyAdapter(上下文、列表项){
超级(上下文,android.R.layout.simple\u list\u item\u多选,items);
这个项目=项目;
}
...
当我单击一行时,复选框被选中,这非常有效

我的视图变得更加复杂,我需要为列表中的每个项目添加进度条:

list_item.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:orientation="horizontal" >

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:indeterminate="true"
        android:visibility="visible" />

    <CheckedTextView
        android:id="@+id/checkedTextView"
        android:layout_width="fill_parent"
        android:layout_height="?android:attr/listPreferredItemHeightSmall"
        android:checkMark="?android:attr/listChoiceIndicatorMultiple"
        android:gravity="center_vertical"
        android:paddingLeft="6dip"
        android:paddingRight="6dip"
        android:text="Rivers"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

因此,我的阵列适配器现在看起来像:

public static class MyAdapter extends ArrayAdapter<String> {
    private List<String> items;

    public MyAdapter(Context context, List<String> items) {
        super(context, R.layout.list_item, R.id.checkedTextView, items);

        this.items = items;
    }
公共静态类MyAdapter扩展了ArrayAdapter{
私人清单项目;
公共MyAdapter(上下文、列表项){
super(上下文、R.layout.list_项、R.id.checkedTextView、项);
这个项目=项目;
}
通过简单的更改使用我自己的布局“R.layout.list\u item”,当我单击一行时,它的复选框不会被选中。在此之前,当我使用androids“android.R.layout.simple\u list\u item\u multiple\u selection”布局时,发生了什么神奇的事情使这项功能得以实现


例如,android在某个地方处理了点击事件并选中了复选框,但我所做的只是更改了布局,现在它不起作用。我想我通过使用那里的布局获得了一些免费的东西。我可以用不同的方式设置我的布局,以便在点击时仍然获得免费的检查吗?

神奇的是CheckedTextView实现了Checkable。如果你想要自己的list项目视图,该视图将处理您需要视图来实现的所有单击/检查事件

答案和示例如下:

检查此问题用户在列表视图外部使用它。我在列表视图内部使用它。似乎许多注释都指向处理选中状态的列表视图。这正是我想要的。为什么当我更改列表项的布局时,我的列表视图不处理选中状态?