复选框在ListView滚动时失去状态

马库斯

我有一个列表视图,每行都有一个复选框,可以一次检查许多项目。当我向下滚动列表时,我的复选框会松开状态(也就是说,我无法一次检查所有项目)

我在这里和互联网上阅读了很多帖子。人们说我必须将我的checkedItems存储在我已经尝试过的ArrayList中,但是它没有用。目前,我将检查状态与列表中的所有其他内容存储在一个对象中。

这是我的适配器的代码:

    public class GalleryListAdapter extends BaseAdapter {
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {

        final ViewHolder holder;
        if (convertView == null) {
            convertView = inflater.inflate(R.layout.gallery_list_item, parent, false);
            holder = new ViewHolder();
            // .. other stuff
            holder.chkbox = (CheckBox) convertView.findViewById(R.id.chkbox);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.chkbox.setChecked(documents.get(position).isChecked());
        holder.chkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    holder.chkbox.setChecked(holder.chkbox.isChecked() ? true : false);
                    documents.get(position).setChecked(holder.chkbox.isChecked() ? true : false);
            }   
        }
    }
}

向下滚动列表后,我的项目未选中,documents.get(checkedItemPosition).checkedfalse有谁知道如何解决这一问题?

编辑-解决方案

多亏了评论和答案,我找到了解决问题的方法:

if (convertView == null) {
holder.chkbox = (CheckBox) convertView.findViewById(R.id.chkbox);
convertView.setTag(R.id.chkbox, holder.chkbox);
}

holder.chkbox.setTag(position);
holder.chkbox.setChecked(documents.get(position).isChecked());

holder.chkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        int getPosition = (Integer) buttonView.getTag();
        holder.chkbox.setChecked(buttonView.isChecked() ? true : false);
        documents.get(getPosition).setChecked(buttonView.isChecked() ? true : false);
    }
}
aut美

在getView方法中,为复选框持有人设置Tag。

holder.chkbox.setTag(object);

并在onCheckedChanged内部执行此操作

 **public onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

           Object obj = ( Object)buttonView.getTag();
           holder.chkbox.setChecked(obj.isChecked() ? true : false);
           documents.get(position).setChecked(obj.isChecked() ? true : false);
      }** 

这将帮助您摆脱该问题;)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

滚动视图时,Android ListView失去复选框状态

来自分类Dev

Listview +复选框

来自分类Dev

带有复选框的ListView在滚动时会变形

来自分类Dev

滚动listView时复选框值更改

来自分类Dev

WPF Checkbox复选框在滚动时移动

来自分类Dev

HTML复选框在刷新后保持选中状态

来自分类Dev

使用CursorAdapter在ListView中维护复选框状态

来自分类Dev

为什么我的自定义单元格中的复选框在快速选择和滚动时显示不同的行为?

来自分类Dev

当复选框由状态驱动时,复选框不响应onChange

来自分类Dev

复选框在页面加载时无法正常工作

来自分类Dev

在Listview中失去复选框的状态

来自分类Dev

滚动视图时,Android ListView失去复选框状态

来自分类Dev

复选框的初始状态?

来自分类Dev

带有复选框的ListView在滚动时会变形

来自分类Dev

具有Viewholder和复选框状态保存的ListView

来自分类Dev

失去焦点时,GridView中的复选框状态样式

来自分类Dev

滚动时复选框列闪烁

来自分类Dev

滚动listView时复选框值更改

来自分类Dev

复选框状态jQuery

来自分类Dev

复选框在选中时不会禁用,Android Studio

来自分类Dev

更改复选框状态

来自分类Dev

如何让禁用的复选框在用户选择时变为活动状态?

来自分类Dev

当复选框在标签内移动时,与复选框关联的标签不起作用

来自分类Dev

单击复选框时,如何知道复选框的状态

来自分类Dev

css 复选框在 :checked 状态下不应用更改

来自分类Dev

通过复选框在 Redux 状态中切换 True 和 False

来自分类Dev

使用父类复选框时,如何让子类复选框更改状态?

来自分类Dev

复选框在带有粘性表头的可滚动表中重叠

来自分类Dev

在回收站视图中滚动时复选框状态不断变化

Related 相关文章

  1. 1

    滚动视图时,Android ListView失去复选框状态

  2. 2

    Listview +复选框

  3. 3

    带有复选框的ListView在滚动时会变形

  4. 4

    滚动listView时复选框值更改

  5. 5

    WPF Checkbox复选框在滚动时移动

  6. 6

    HTML复选框在刷新后保持选中状态

  7. 7

    使用CursorAdapter在ListView中维护复选框状态

  8. 8

    为什么我的自定义单元格中的复选框在快速选择和滚动时显示不同的行为?

  9. 9

    当复选框由状态驱动时,复选框不响应onChange

  10. 10

    复选框在页面加载时无法正常工作

  11. 11

    在Listview中失去复选框的状态

  12. 12

    滚动视图时,Android ListView失去复选框状态

  13. 13

    复选框的初始状态?

  14. 14

    带有复选框的ListView在滚动时会变形

  15. 15

    具有Viewholder和复选框状态保存的ListView

  16. 16

    失去焦点时,GridView中的复选框状态样式

  17. 17

    滚动时复选框列闪烁

  18. 18

    滚动listView时复选框值更改

  19. 19

    复选框状态jQuery

  20. 20

    复选框在选中时不会禁用,Android Studio

  21. 21

    更改复选框状态

  22. 22

    如何让禁用的复选框在用户选择时变为活动状态?

  23. 23

    当复选框在标签内移动时,与复选框关联的标签不起作用

  24. 24

    单击复选框时,如何知道复选框的状态

  25. 25

    css 复选框在 :checked 状态下不应用更改

  26. 26

    通过复选框在 Redux 状态中切换 True 和 False

  27. 27

    使用父类复选框时,如何让子类复选框更改状态?

  28. 28

    复选框在带有粘性表头的可滚动表中重叠

  29. 29

    在回收站视图中滚动时复选框状态不断变化

热门标签

归档