如何在listview中有一个复选框,以便在适配器活动之外有一个监听器?

时间:2018-05-31 07:51:47

标签: android listview checkbox onclicklistener onitemclicklistener

因此,我在listview中显示了菜单项以及checkboxes,供用户选择他喜欢的内容。我有一个开销的购物车图标,通过适配器视图中写入的函数跟踪没有检查的项目。

My problem:

当我在OnItemClick listener内部实现了购物车增量功能,然后当我检查几个项目时,doesn't get updated除非我创建click outside of checkbox(列表视图中的其他位置)

我已尝试根据其他SO答案禁用后代可聚焦性并修改可聚焦性。他们还没有解决我的问题。

我的通话活动

adapter = new MenuAdapter(CreateOrder.this,itemslist);
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                          selecteditems = adapter.getSelectedList();
                          Log.e("Selected Items",selecteditems.toString());
                          size = selecteditems.size();
                          qo.setText(String.valueOf(size));
                          Log.e("No of main items ",String.valueOf(size));


            }
        });

1 个答案:

答案 0 :(得分:0)

  

checkBoxState = new boolean [linkedList.size()];

你在getView()中有这个。因此,对于getView()的每次调用,你都会抛弃前者。

在getView()中你使用checkBoxState [position],然后当然是未定义的或null。

所以把它取出并放在你的适配器的构造函数中,然后像使用那个int数组一样初始化它。

顺便说一句:你为​​什么不告诉你的复选框在滚动过程中没有保持状态?