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
}
}
}
所以,onclicklistener內,建立檢查項目位置的數組列表?然後,根據該列表測試當前項目的位置。如果它在裏面,請繼續並採取行動?如果不是,我該如何回覆? –
這個問題已問了很多,詳情請看這裏http://stackoverflow.com/a/2408987/1635817 – florianmski