0
因爲我的listView/List項目有複選框我有問題,當我滾動列表時,複選框被選中或取消選中。因此,我需要跟蹤ArrayList中的選中項目。所以我在每個複選框上添加了一個OnCheckedChangeListener,並且我已經從listview的自定義適配器的「getView」中添加了監聽器。Android:給列表視圖中的每個複選框,而不覆蓋其他人
現在,因爲每個checbox都對點擊作出反應,所以我有以下問題。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
if (!MainActivity.getSharedInstance().getIsCheckedArray().contains(tasks.get(MainActivity.ID)))
MainActivity.getSharedInstance().getIsCheckedArray().add(tasks.get(MainActivity.ID));
for (String i : MainActivity.getSharedInstance().getIsCheckedArray()) {
Log.i("RUN", i);
}
} else {
if (MainActivity.getSharedInstance().getIsCheckedArray().contains(tasks.get(MainActivity.ID)))
MainActivity.getSharedInstance().getIsCheckedArray().remove(tasks.get(MainActivity.ID));
for (String i : MainActivity.getSharedInstance().getIsCheckedArray()) {
Log.i("RUN", i);
}
}
}
});
從每個項目我有一個自己的ID,我可以與ID到達項目。但是當我點擊複選框來獲取ID時,我只能得到一個項目的ID(最後一項)。當我點擊其他複選框時,他們會對更改做出反應,但我只從最後一個項目獲取ID,而不是最後一個項目之前的項目。
當我總是創建新的偵聽器時,是否覆蓋偵聽器?
更新: 沒關係,我已將此添加到onCheckChangeListener
String curIndex = tasks.get(MainActivity.ID);
和它的工作