无意中选中了Android:ListView复选框

无意中选中了Android:ListView复选框,android,checkbox,scroll,android-listview,Android,Checkbox,Scroll,Android Listview,我有一个列表视图,它是页眉栏下面的布局和页脚栏上面的布局。ListView的每一行都包含一个带有复选框和文本视图的线性布局。现在,当我一次可以显示更多行时,您当然可以向下或向上滚动。但是,一旦我向下或向上滚动,第一个和/或最后一个复选框将被自动选中。我的手指离你选中复选框的地方很远。这可能是什么原因造成的? 注意:我在这里使用了代码:简单查看相关链接下的代码,我可以看到以下内容: public View getView(int position, View convertView, ViewG

我有一个列表视图,它是页眉栏下面的布局和页脚栏上面的布局。ListView的每一行都包含一个带有复选框和文本视图的线性布局。现在,当我一次可以显示更多行时,您当然可以向下或向上滚动。但是,一旦我向下或向上滚动,第一个和/或最后一个复选框将被自动选中。我的手指离你选中复选框的地方很远。这可能是什么原因造成的?
注意:我在这里使用了代码:

简单查看相关链接下的代码,我可以看到以下内容:

 public View getView(int position, View convertView, ViewGroup parent){
      CheckBoxifiedTextView btv;
      if (convertView == null) {
           btv = new CheckBoxifiedTextView(mContext, mItems.get(position));
      } else { // Reuse/Overwrite the View passed
           // We are assuming(!) that it is castable!
           CheckBoxifiedText src = mItems.get(position);
           btv = (CheckBoxifiedTextView) convertView;
           btv.setCheckBoxState(src.getChecked());  // set checked state
           btv = (CheckBoxifiedTextView) convertView;
           btv.setText(mItems.get(position).getText());
      }
      return btv;
 }
如您所见,视图在滚动期间被重用,复选框状态是使用方法setCheckBoxState设置的。 然后在CheckBoxifiedTextView中,您可以找到:

 public void setCheckBoxState(boolean bool)
 {
     mCheckBox.setChecked(mCheckBoxText.getChecked());
     mCheckBoxText.setChecked(true); // <-- HERE !
 } 

在第4行中,设置了硬编码的setCheckedtrue,这可能会导致问题。

谢谢Benni,我会检查它。hmmmm上面引用的页面上的代码不会硬编码。但它必须在下载的代码中…是的,我正在查看下载的代码,因为页面上的代码不包含所有功能