【问题标题】:Multi select listview not working with more than one component inside list item多选列表视图不能与列表项内的多个组件一起使用
【发布时间】:2016-12-18 14:47:38
【问题描述】:

我有一个启用了 CHOICE_MODE_MULTIPLE_MODAL 的 ListView。它工作得非常好,长按时,当列表项 XML 中的 RelativeLayout 中只有一个 TextView 时,列表项被选中。

但是当我向项目 XML 添加一个复选框时,我无法通过长按来选择列表项。 任何帮助将不胜感激。

工作列表项 XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/list_item_selector">

    <TextView
        android:text="TextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/todoNoteTitle"
        android:layout_alignParentTop="true"
        android:textSize="18sp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:paddingTop="20dp"
        android:paddingBottom="20dp"
        android:paddingLeft="10dp" />
</RelativeLayout>

非工作列表项 XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/list_item_selector">

    <TextView
        android:text="TextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/todoNoteTitle"
        android:layout_alignParentTop="true"
        android:textSize="18sp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:paddingTop="20dp"
        android:paddingBottom="20dp"
        android:paddingLeft="10dp" />
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/checkboxTodo"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:textSize="18sp"
        android:paddingTop="20dp"
        android:paddingBottom="20dp"
        android:paddingRight="20dp"/>

</RelativeLayout>

有什么线索吗?

【问题讨论】:

    标签: android xml listview multi-select


    【解决方案1】:

    这样做:

    your_text_view.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                //Check or uncheck the CheckBox.
                if (!your_check_box.isCheck())
                   your_check_box.setChecked(true);
                else your_check_box.setChecked(false);
    
                return false;
            }
    });
    

    听长按(长按此处)并在长按事件时设置当前复选框或取消选中它。这应该可以解决问题。

    【讨论】:

    • 不,这不是要求。复选框选中/取消选中独立于列表项选择。您可以认为复选框检查将使任务完成,而列表项选择将启用删除整个列表项。
    猜你喜欢
    • 2013-10-01
    • 2011-01-17
    • 1970-01-01
    • 2019-12-22
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多