比如有 30 筆資料
點選第 1 筆後
竟然在 2X 筆突然出現被勾選的狀態
If you check first checkbox and slide down, Actually the twentieth checkbox
was checked.
解決辦法 :
1 . 把被點選的位置記錄下來
2 . 生成 CheckBox 時去判斷是否要被勾選
import java.util.HashMap;
import java.util.List;
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TextView;
public class MyAdapter extends BaseAdapter{
private HashMap<Integer, Boolean> hashMap = new HashMap<Integer,Boolean>();
.
.
.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Elements elements = null;
if (convertView == null) {
.
.
.
} else {
.
.
.
}
elements.checkBox1.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked)
{
hashMap.put(position, isChecked);
}else{
hashMap.remove(position);
}
}});
elements.checkBox1.setChecked(hashMap.get(position)==null? false : true);
return convertView;
}
}
參考資料 : ListView点击checkbox其他checkbox也被同时选中的问题
沒有留言:
張貼留言