试图让我的ListView多选,但我无法让它工作

时间:2012-11-30 13:01:36

标签: java android android-layout android-listview

我已经坚持了一段时间。我希望用户能够从列表中选择一个项目(只需点击该项目,没有复选框),并让它点亮或显示它已被选中。用户可以根据需要选择任意数量,最后他们可以点击“完成”来完成他们的选择。

我该怎么做呢?我有一个自定义适配器和行布局。

3 个答案:

答案 0 :(得分:1)

创建一个hashmap或其他内容,以帮助您统计选择列表中的哪个项目:

HashMap<Integer, Boolean> selectedItems = new HashMap<Integer, Boolean>();

在适配器的getView方法

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (v == null) {
            LayoutInflater inflater = (LayoutInflater) ctx
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = inflater.inflate(R.layout.your_custom_item, null);
        }

        if(selectedItems.get(position))
            v.setBackgroundColor("YOURSELECTEDCOLOR");
        else v.setBackgroundColor("YOURUNSELECTEDCOLOR");

        return v;
    }

当然,你应该在onItemClickListener上设置你的hashmap项目。

答案 1 :(得分:0)

这里需要一个布尔类型数组,大小等于 ListView 适配器列表的大小,然后只需添加一个 onItemClick ListView的监听器并且在选择项目时只需切换列表中的布尔变量,现在当用户完成选择时,只需迭代选定项目的列表:)

当用户点击列表项时,

还切换列表项的背景(到选定或未选择状态)

答案 2 :(得分:0)

将ListView的setChoiceMode方法设置为MULTI_SELECT。