我有一个带有自定义数组适配器的自定义列表视图。我正在使用列表视图进行多行选择。但是,当我选择可见子项的行并向上/向下滚动列表视图时,其他出现的子项也会被选中。
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(convertView == null)
convertView = layoutInflater.inflate(R.layout.addbill_row,parent,false);
initUI(convertView);
assignValues(position);
cbAddBillSelected.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked)
{
Data.arrlstSelectedUsers.get(position).isChecked = true;
}
else
{
Data.arrlstSelectedUsers.get(position).isChecked = false;
}
}
});
return convertView;
}
还附上屏幕截图。不知道为什么会发生这种情况,我通过将所选项目保存在共享首选项中来解决另一个问题,但它是一个长期的解决方案。寻找更好的解决方案。