CheckedTextView未被检查

时间:2014-04-10 23:00:17

标签: android android-listview

我有一个附加到数组适配器的简单列表视图。我的列表是多选复选框列表。

首先,我只使用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;
    }
     ...

当我单击一行选中复选框时,这非常有效。

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

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;
    }

通过简单的更改即可使用我自己的布局&#34; R.layout.list_item&#34;,当我点击一行时,其复选框不会被选中。当我使用androids&#34; android.R.layout.simple_list_item_multiple_choice&#34;布局?

即。某处android处理了click事件并检查了该框,但我所做的只是更改布局,现在它不起作用。我想通过使用布局我可以免费获得一些东西。我可以设置不同的布局,以便仍然可以免费检查点击吗?

1 个答案:

答案 0 :(得分:1)

神奇的是CheckedTextView实现了Checkable。如果您希望自己的列表项视图适用于所有点击/检查事件,则需要您的视图来实现它。

回答w /示例: http://tokudu.com/post/50023900640/android-checkable-linear-layout