Java 复选框没有';无法在ListView中正常工作?

Java 复选框没有';无法在ListView中正常工作?,java,android,android-listview,Java,Android,Android Listview,我有一些项目的列表视图。我放置了一个复选框来显示带有该列表项的复选框。我已经编写了onclick方法来选中所有复选框。但是,它将选择列表顶部的项目。有什么问题吗?有人让我明白吗?提前谢谢。样本代码:- CheckBox c = (CheckBox)findViewById(R.id.checkBox1); if (c.isChecked()) { c.setChecked(false); }

我有一些项目的列表视图。我放置了一个复选框来显示带有该列表项的复选框。我已经编写了onclick方法来选中所有复选框。但是,它将选择列表顶部的项目。有什么问题吗?有人让我明白吗?提前谢谢。样本代码:-

CheckBox c = (CheckBox)findViewById(R.id.checkBox1);
            if (c.isChecked())
            { 
                c.setChecked(false);
            }
            else 
            { 
                c.setChecked(true);
            }
private OnClickListener checkallcheckbox=new OnClickListener(){
公共void onClick(视图v){
ListView lv=getListView();
int size=getListAdapter().getCount();
布尔检查=lv.isItemChecked(0);

对于(inti=0;i,有了这个片段,很难指出问题所在

第一,listview重用了视图,可能在滚动时,相同的视图会出现在其他地方

这里有一个教程
查看它。或者发布其他代码。特别是适配器代码中的
getView

之所以发生这种情况,是因为在调用适配器视图时,它在列表视图时执行

所以在你点击复选框(true)后,屏幕下方相同数量的区域将为true。为此,你必须保持向量

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

单击事件后尝试此操作。

您可以看到在所有复选框上执行操作的示例列表是如何创建的?能否提供更多信息。复选框的id(复选框1)在第一次查看时听起来,就像它用于每个复选框一样?也许这就是系统选择列表中第一个复选框的方式-因为它是它能找到的第一个id?用于(int i=0;ifor(int i=0; i < listView.getChildCount(); i++){ RelativeLayout itemLayout = (RelativeLayout)listView.getChildAt(i); CheckBox cb = (CheckBox)itemLayout.findViewById(R.id.MyListViewCheckBox); cb.setChecked(true);
if(tempVector.get(position)){
            holder.box.setChecked(true);
        }
        else{
            holder.box.setChecked(false);
        }