每當上下滾動時,我都會丟失複選框的檢查狀態。Android滾動後丟失檢查狀態
我解決不了這個問題,兩天......
請幫我
這裏是我的代碼。
public View getView(final int position, View view, ViewGroup parent) {
context = parent.getContext();
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.custom_llistview, parent, false);
holder.img_view = (ImageView) view.findViewById(R.id.custom_imageView);
holder.txt_view = (TextView) view.findViewById(R.id.custom_textView);
holder.checkbox = (CheckBox) view.findViewById(R.id.check_box);
view.setTag(holder);
}
else {
holder = (ViewHolder)view.getTag();
}
holder.checkbox.setChecked(check_flag_arr[position]);
holder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
check_flag_arr[position] = isChecked;
else {
check_flag_arr[position] = isChecked;
}
}
});
file_path = list_item.get(position).getFile_path();
Bitmap showImage = BitmapFactory.decodeFile(file_path);
holder.img_view.setImageBitmap(showImage);
list_contents = file_path.substring(45, 65);
holder.txt_view.setText(list_contents);
return view;
}
和細節的解釋將是一大樂事給我。
我必須解決這個問題。
感謝您收看我的文章。
你如果和別人都在做同樣的事情。所以它變得多餘。這不是你問題的原因,只是想讓你知道。 if(isChecked){ check_flag_arr [position] = isChecked;其他{ 其中{check_flag_arr [position] = isChecked; } –
感謝您的意見。但我已經知道了。這是爲了我的可讀性。我原來的代碼分別在if和else中有不同的語句。 –
@ Na Jun Yeop查看下面的答案。這應該適合你 –