カスタム配列アダプターを使用したカスタム リスト ビューがあります。複数行の選択にリストビューを使用しています。しかし、表示されている子の行を選択し、リスト ビューを上下にスクロールすると、表示される他の子も選択されます。
@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;
}
スクリーンショットも添付。なぜこれが起こっているのかわかりません。選択したアイテムを共有設定に保存することで別の回避策がありますが、それは長い解決策です。より良い解決策を探しています。