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