我有一个包含多个项目的列表视图,我需要选择和取消选择列表项目,还要删除所选项目。
所以我已经查看了以下链接中的示例,但是android:minSdkVersion="11"
但我正在研究minSdkVersion =“10”。
链接:http://www.androidbegin.com/tutorial/android-delete-multiple-selected-items-listview-tutorial/
是的,我们可以使用选中的文本视图,复选框和单选按钮,但要求就像我不能使用它。
还有其他方法可以实现这个目标吗?
答案 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?