1.)最初に配列を作成します。これは、アダプターでチェックされたアイテムの状態を示します
BaseAdapter
(この目的のためにクラスを拡張すると仮定):
private boolean [] itemsChecked = new boolean [getCount()];
2.)次に、次を作成しますOnCheckedChangeListener
。
private OnCheckedChangeListener listener = new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton button, boolean checked)
{
Integer index = (Integer)button.getTag();
itemsChecked[index] = checked;
}
}
3.)アダプターのgetView()
メソッドで:
public View getView(int index, View view, ViewGroup parent)
{
/*...*/
CheckBox checkBox = /*get the checkbox*/;
checkbox.setTag(index);
checkBox.setOnCheckedChangeListener(listener);
/*...*/
}
4.)メソッドonClick()
内:
public void onClick(View view)
{
//just get the boolean array somehow
boolean [] itemsChecked = adapter.getItemsCheckedArray();
for(int i=0; i<itemsChecked.length; i++)
{
if(itemsChecked[i])
{
//the i th item was checked
}
else
{
//it isnt checked
}
}
}