【问题标题】:how to enable/disable a check box in a listview while click the list view?单击列表视图时如何启用/禁用列表视图中的复选框?
【发布时间】:2014-08-30 08:21:09
【问题描述】:

我有一个自定义列表视图,我有文本字段和复选框。当我单击列表视图时,如果未启用复选框,则应启用该复选框,副签证。安卓可以吗?

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" />

【问题讨论】:

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


【解决方案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());
       }
});

【讨论】:

    【解决方案2】:

    当有人单击列表项时,您已经有了做出反应的侦听器。 onItemClick 方法中给出的 View 是列表项。

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

    然后您可以检查是否已使用 isChecked() 检查并使用 setChecked() 进行设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多