具有多个项目的列表视图选择并取消选择

时间:2014-01-06 06:14:50

标签: android listview select android-listview

我有一个包含多个项目的列表视图,我需要选择和取消选择列表项目,还要删除所选项目。

所以我已经查看了以下链接中的示例,但是android:minSdkVersion="11" 但我正在研究minSdkVersion =“10”。

链接:http://www.androidbegin.com/tutorial/android-delete-multiple-selected-items-listview-tutorial/

是的,我们可以使用选中的文本视图,复选框和单选按钮,但要求就像我不能使用它。

还有其他方法可以实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

制作自定义列表适配器并单击每个视图并在适配器中维护标志。如果flag为true表示选择了项目,否则取消选择项目,根据您可以更改项目视图,如禁用该特定项目或显示一些复选框。

答案 1 :(得分:0)

我所做的是创建了一个ArrayList,用于存储所选项目的所有位置,并在点击时切换背景颜色。

在我的适配器中,我定义:

public ArrayList<Integer> selectedIds = new ArrayList<Integer>();

使用以下方法:

public void toggleSelected(Integer position)
{
    if(selectedIds.contains(position))
    {
        selectedIds.remove(position);


    }
    else
    {
        selectedIds.add(position);
    }
}

addes \从ArrayList中删除项目

在我的getView方法中:

    if (selectedIds.contains(position)) {
        convertView.setSelected(true);
        convertView.setPressed(true);
        convertView.setBackgroundColor(Color.parseColor("#FF9912"));
    }
    else
    {
        convertView.setSelected(false);
        convertView.setPressed(false);
        convertView.setBackgroundColor(Color.parseColor("#000000"));
    }

检查位置是否存在于ArrayList中。如果是,请将其绘制为选中状态。如果没有,则相反。

剩下的就是OnItemClick监听器,我补充说:

((YourAdapter)list.getAdapter()).toggleSelected(new Integer(position));

当YourAdapter是ListView的适配器

希望这对任何人都有帮助,因为这是一个通用答案:)

感谢 eric.itzhak How to change background color of selected items in ListView?