【问题标题】:Checkbox didn't work properly in ListView?复选框在 ListView 中无法正常工作?
【发布时间】:2011-08-24 06:22:57
【问题描述】:

我有一些项目的列表视图。我放置了一个复选框以显示带有该列表项的复选框。我已经编写了 onclick 方法来检查所有复选框。但是,它将选择列表顶部的项目。有什么问题?有人给我解惑吗?提前致谢。示例代码:-

CheckBox c = (CheckBox)findViewById(R.id.checkBox1);
            if (c.isChecked())
            { 
                c.setChecked(false);
            }
            else 
            { 
                c.setChecked(true);
            }

【问题讨论】:

  • 您可以看到对所有复选框执行操作的示例stackoverflow.com/questions/6758109/…
  • 您的列表是如何创建的?您能否提供更多信息。复选框 (checkBox1) 的 id 乍一看听起来,就像它用于每个复选框一样?也许这就是系统选择列表中第一个的方式 - 因为它是它可以找到的第一个 id?
  • for(int i=0; i
  • @Pragna :嘿,对不起,它工作不正常。它将选择顶部的项目,而底部的其余项目未正确选择。我能做什么?

标签: java android android-listview


【解决方案1】:
private OnClickListener checkAllCheckboxes = new OnClickListener(){
    public void onClick(View v) {
        ListView lv = getListView();
        int size = getListAdapter().getCount();
        boolean check = lv.isItemChecked(0);
    for(int i = 0; i <= size; i++)
        lv.setItemChecked(i, !check);

        }
    }


for(int i=0; i < listView.getChildCount(); i++){
RelativeLayout itemLayout = (RelativeLayout)listView.getChildAt(i);
CheckBox cb = (CheckBox)itemLayout.findViewById(R.id.MyListViewCheckBox);
cb.setChecked(true);


android-unable-to-check-all-the-checkboxes-in-a-custom-listview-because-of-recy

Example2

【讨论】:

    【解决方案2】:

    用那个 sn-p 很难指出问题。

    一,列表视图重用视图,也许在滚动相同视图时出现在其他位置。

    这是一个教程http://www.marvinlabs.com/2010/10/custom-listview-ability-check-items/ 看看这个。或发布附加代码。特别是适配器代码中的getView

    【讨论】:

      【解决方案3】:

      发生这种情况是因为在调用适配器视图时它会在您的列表视图时执行。

      因此,在您单击下方屏幕相同编号的复选框 (true) 后,该复选框将变为 true。为此,您必须维护 Vector。

      if(tempVector.get(position)){
                  holder.box.setChecked(true);
              }
              else{
                  holder.box.setChecked(false);
              } 
      

      在你的点击事件之后试试这个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多