我有自定义列表视图和自定义数组适配器。我正在使用列表视图进行多行选择。但是,当我选择可见子项的行,并向上/向下滚动列表视图时,也会选择显示它们的其他子项。
@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;
}
也附加屏幕截图。不知道为什么会发生这种情况,我通过在共享偏好中保存所选项目来解决另一个问题,但这是一个很长的解决方案。 寻找更好的解决方案。
答案 0 :(得分:0)
为什么不使用带有ListView
布局的内置Checkbox
? android.R.layout.simple_list_item_multiple_choice
将为您效劳。
答案 1 :(得分:0)
它是赋值函数中的一部分。您还必须在其中指定复选框。如果这不足以作为答案plz修改你的问题并包括赋值值功能代码。我会修改它。
当convertView不为null时会发生这种情况。它会让你得到一个二手的观点。这就是这个方法如何工作“getView”。因此,每当convertView不为null时,您必须修改每个ui元素。
答案 2 :(得分:0)
跟随Vogella列表视图教程,它就像一个魅力。使用标签。