행 세트가있는 목록보기를 수행했습니다. 각 행에는 확인란이 있습니다. 하나의 확인란을 클릭하면 다른 확인란도 선택됩니다. 이것을 피하기 위해 내가 무엇을 할 것인가? 누구나 나를 도울 줄 알고 ..Android 체크 박스 다중 선택 문제
답변
이것은 (view == null) 조건을 제거하여 뷰를 재사용하기 때문입니다.
ListView의 CheckBox에 문제가 발생하지 않도록하려면 처음에 부울 배열을 false로 초기화 한 다음 ListView에서 확인란이 선택된 배열에서 해당 위치를 true로 만듭니다. 이렇게하면 응용 프로그램에서 앞뒤로 이동하거나 ListView를 스크롤 할 때 확인란의 상태를 확인하는 데 문제가 발생하지 않습니다.
holder.checkbox.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (((CheckBox) v).isChecked())
checkBoxState[pos] = true;
else
checkBoxState[pos] = false;
}
});
다음이 체크 박스는 스크롤 할 때 확인 계속되고 상태가 자동으로 변경되지 않습니다 :
holder.checkbox.setChecked(checkBoxState[pos]);
내 코드에서 이것을 적용하는 법을 모르겠다. – sundaramoorthy
getView() 메서드에서 사용한다. 홀더의 사용법을 모른다면 사용자 지정 ListView를 철저히 조사 해보자. –
공용 뷰 getView (int 위치, 뷰 convertView, 뷰 그룹 부모) { 보기 vi = convertView; \t vi = inflater.inflate (R.layout.mainlist_item, null); ImageView imgview = (ImageView) vi.findViewById (R.id.list_image); TextView 아티스트 = (TextView) vi.findViewById (R.id.nameid); TextView 뷰 = (TextView) vi.findViewById (R.id.deptid); imgview.setImageBitmap (imgs.get (position)); artist.setText (empname.get (position)); view.setText (empdept.get (position)); 돌아 가기 vi; } – sundaramoorthy
이가 여기
는 checkboxstate는 부울 배열입니다 설정하는 방법입니다 내 코드 :
public class Favourites extends Activity {
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listfavourites);
initcomponents();
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
}
});
ArrayList<HashMap<String, String>> alist = new ArrayList<HashMap<String, String>>();
for (int i = 1; i < 20; i++) {
HashMap<String, String> hmap = new HashMap<String, String>();
hmap.put("itemname", "ItemName" + i);
hmap.put("price", "Price");
alist.add(hmap);
}
final CustomListAdapter adapter = new CustomListAdapter(this,
R.layout.listitemfavourites, alist);
list.setAdapter(adapter);
}
private void initcomponents() {
list = (ListView) findViewById(R.id.listfavourites_lst_list);
}
class CustomListAdapter extends ArrayAdapter<HashMap<String, String>> {
Context context;
boolean[] checkBoxState;
int textViewResourceId;
ArrayList<HashMap<String, String>> alist;
public CustomListAdapter(Context context, int textViewResourceId,
ArrayList<HashMap<String, String>> alist) {
super(context, textViewResourceId);
this.context = context;
this.alist = alist;
this.textViewResourceId = textViewResourceId;
checkBoxState = new boolean[alist.size()];
}
public int getCount() {
return alist.size();
}
public View getView(final int pos, View convertView, ViewGroup parent) {
Holder holder = null;
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
convertView = inflater.inflate(R.layout.listitemfavourites, parent,
false);
holder = new Holder();
holder.checkbox = (CheckBox) convertView
.findViewById(R.id.listitemfavourites_chk_checkbox);
holder.itemname = (TextView) convertView
.findViewById(R.id.listitemfavourites_txt_itemname);
holder.price = (TextView) convertView
.findViewById(R.id.listitemfavourites_txt_price);
holder.lin_background = (LinearLayout) convertView
.findViewById(R.id.favourites_lin_top);
convertView.setTag(holder);
holder = (Holder) convertView.getTag();
holder.itemname.setText(alist.get(pos).get("itemname"));
holder.price.setText(alist.get(pos).get("price"));
holder.checkbox.setChecked(checkBoxState[pos]);
if (pos == 0) {
holder.lin_background
.setBackgroundResource(R.drawable.bg_celltop);
} else if (pos == (alist.size() - 1) && alist.size() != 1) {
holder.lin_background
.setBackgroundResource(R.drawable.bg_cellbottom);
}
holder.checkbox.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (((CheckBox) v).isChecked())
checkBoxState[pos] = true;
else
checkBoxState[pos] = false;
}
});
return convertView;
}
class Holder {
TextView itemname, price;
CheckBox checkbox;
LinearLayout lin_background;
}
}
}
- 1. jquery의 다중 선택 체크 박스
- 2. AJAX 다중 체크 박스/다중 선택
- 3. Android 동적 체크 박스 문제
- 4. Jquery Mobile 1.2 다중 체크 박스 선택 문제
- 5. Formtastic/ActiveAdmin 다중 선택 다수 체크 박스 연결 문제
- 6. Datatables squared4 체크 박스 다중 선택 기능
- 7. 마지막 결과를 반환하는 다중 선택 체크 박스
- 8. IE9의 체크 박스 문제
- 9. ControlTemplate 체크 박스 문제
- 10. jquery의 체크 박스 선택 순서 문제
- 11. IE6 체크 박스 선택 모델 문제
- 12. 다중 체크 박스 배열
- 13. wxpython의 다중 체크 박스
- 14. MVC2 체크 박스 문제
- 15. 있는 jqGrid 다중 선택 문제
- 16. Android 개발자 단일 선택 체크 박스 정보
- 17. 체크 박스 ischeck 또는 선택 취소 android
- 18. Datatable 다중 체크 박스 선택 - 선택 헤더 수정
- 19. Jquery 체크 박스 선택
- 20. 특정 체크 박스 선택
- 21. 체크 박스 선택
- 22. 체크 박스 체크 박스 체크 박스
- 23. 젠드 양식 - 내 체크 박스 목록에 대한 다중 체크 박스
- 24. 맞춤 목록 항목보기의 Android 체크 박스 문제
- 25. ListView 선택 모든 체크 박스
- 26. 체크리스트 박스 다중 선택
- 27. 체크 박스 상태 문제
- 28. WPF 체크 박스 문제
- 29. 모든 체크 박스 문제
- 30. GridView의 체크 박스 문제
해당 작업 .. 그러나 내가 목록보기를 스크롤하는 경우 확인란의 선택이 자동으로 해제됩니다 atically – sundaramoorthy