2

我已经坚持了一段时间。我希望用户能够从列表中选择一个项目(只需点击该项目,没有复选框)并让它亮起或其他东西,因此很明显它已被选中。用户可以随心所欲地选择,最后他们可以点击“完成”来完成他们的选择。

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

4

3 回答 3

1

创建一个哈希图或其他东西来帮助您计算列表中选择的项目:

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;
    }

你当然应该在ItemClickListener上设置你的hashmap项。

于 2012-11-30T13:08:21.097 回答
0

在这里,您需要一个布尔类型的数组,其大小等于 ListView适配器列表的大小,然后只需添加ListView的onItemClick侦听器,并在选择项目时只需切换列表中的布尔变量,现在当用户完成选择时只需遍历所选项目的列表即可:)

当用户单击它们时,还切换列表项的背景(选择或未选择状态)

于 2012-11-30T13:24:33.107 回答
0

将 ListView 的 setChoiceMode 方法设置为 MULTI_SELECT。

于 2012-11-30T13:29:56.767 回答