单击列表视图时如何启用/禁用列表视图中的复选框?

时间:2014-07-09 10:38:49

标签: java android android-layout android-listview android-checkbox

我有一个自定义列表视图,我有文本字段和复选框。当我点击列表视图时,如果没有启用和副签证,则应启用该复选框。它有可能在android?

listView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

            }
        });

我的列表视图如下。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="6dip" >

    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:focusable="false"
        android:textColor="@color/white"
        android:focusableInTouchMode="false"
        android:text="CheckBox" />

    <TextView
        android:id="@+id/code"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/checkBox1"
        android:layout_alignBottom="@+id/checkBox1"
        android:visibility="invisible"
        android:textColor="@color/white"
        android:layout_toRightOf="@+id/checkBox1"
        android:text="TextView" />

这是我在主要活动xml中的列表

   <ListView
        android:id="@+id/listView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

2 个答案:

答案 0 :(得分:1)

1)你需要一个onItemClickListener
2)获取CheckBox
3)如果当前状态为
,则将CheckBox设置为相反 4)完成:))

listView.onItemClickListener(new OnItemClickListener(){
       public void onItemSelected(AdapterView<?> adapter, View v, int position, long arg3){
            CheckBox checkBox = v.findViewById(R.id.checkBox1);
            checkBox.setChecked(!checkBox.isChecked());
       }
});

答案 1 :(得分:0)

当有人点击列表项时,您已经有了响应的侦听器。 onItemClick方法中给出的视图是列表项。

现在您只需要从列表项中获取CheckBox: final CheckBox checkBox = (CheckBox) view.findViewById(R.id.checkBox1);

然后你可以检查,如果用isChecked()检查它并用setChecked()设置它。