全てにおいて良い日。
各テキストビューの近くにチェックボックスがあるリストビューがあります。1 つのチェックボックスをオンにして下にスクロールすると、ランダムな他のチェックボックスもオンになります。この投稿と他のいくつかの投稿を読みましたが、各チェックボックスの状態をブール値のリストに保存する必要があると全員が言っています getView()
。どうすればそれを行うことができますか?
ありがとう。
コード用に編集:
これはアダプタのコードで、getView()
メソッドも含まれています。
public class MyCustomAdapter extends BaseAdapter
{
public ArrayList<Error> list;
private Context mContext;
private LayoutInflater mInflator;
public MyCustomAdapter(Context context, int textViewResourceId, ArrayList<Error> list)
{
this.list = list;
this.mContext = context;
mInflator = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount()
{
return list.size();
}
@Override
public Error getItem(int position)
{
return list.get(position);
}
@Override
public long getItemId(int position)
{
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if(convertView == null)
{
holder = new ViewHolder();
convertView = mInflator.inflate(R.layout.listviewrow, null);
holder.text = (TextView)convertView.findViewById(R.id.text);
holder.checkbox = (CheckBox)convertView.findViewById(R.id.checkbox);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder)convertView.getTag();
}
final int pos = position;
holder.text.setText(list.get(position).getDescription());
holder.checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
list.get(pos).setChecked(isChecked);
}
});
return convertView;
}
static class ViewHolder
{
TextView text;
CheckBox checkbox;
}
}