有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何向listview中的每个项目添加复选框

我正在开发一个calander应用程序。显示所有可用日历的列表视图。 如何向其添加复选框,以及 之前选择的日历应显示“已选中”

我想要这样的列表视图

文本视图cb


共 (2) 个答案

  1. # 1 楼答案

    您可以对ListView行使用checkedTextView(使用自定义适配器),并在列表视图中指定android:choiceMode=“multipleechoice”

    以下是我的代码示例:

    <CheckedTextView
        android:id="@+id/member_name"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:gravity="center_vertical"
        android:paddingLeft="20dp"
        android:textColor="@color/dark_grey_txt" />
    

    在这里,当你点击CheckedTextView时,它会添加checked drawable

    现在,将所选项目存储在列表中<>;你可以点击添加和删除

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        CheckedTextView ctv = (CheckedTextView) view.findViewById(R.id.member_name);
        if (ctv != null) {
            if (ctv.isChecked()) {
                ctv.setChecked(false);
                listAdapter.removeSelectedMembers(position);
            } else {
                ctv.setChecked(true);
                listAdapter.setSelectedMembers(position);
            }
        }
    }
    

    //添加和删除项的适配器方法

    public void setSelectedMembers(int position) {
        if (!selectedMembersList.contains(String.valueOf(position))) {
            selectedMembersList.add(String.valueOf(position));
        }
    }
    
    public void removeSelectedMembers(int position) {
        selectedMembersList.remove(String.valueOf(position));
    }
    
  2. # 2 楼答案

    将listview适配器设置为“简单列表项多项选择”

    ArrayAdapter<String> adapter;
    
    List<String> values; // put values in this
    
    //Put in listview
    adapter = new ArrayAdapter<UserProfile>(
    this,
    android.R.layout.simple_list_item_multiple_choice, 
    values);
    setListAdapter(adapter);   //Set the adpter to list View
    

    第二种方法是通过扩展基本适配器类来创建自定义适配器:

    请看链接中的示例:

    http://www.mysamplecode.com/2012/07/android-listview-checkbox-example.html