체크 박스를 사용하여 목록보기를 만들려고하고 있는데 코드를 시도했지만 제대로 작동했지만 확인란 상태를 처리 할 때 문제가 발생했습니다. 문제는이 코드 줄에 나타납니다setOnCheckedChangeListener를 사용하는 체크 박스 홀더
holder.chkBox.setOnCheckedChangeListener((MyActivity) context);
내가 시도 코드가 MainActivity.java 파일에서 분리 Adapter.java 파일을 사용하지만, 내 코드에있는 모든 그래서 난 돈 하나 개의 파일에 있기 때문에 ' t 내 코드에서이 줄을 사용하는 방법을 알고, 내가 홀더의 줄을 사용하여이
holder.chkBox.setOnCheckedChangeListener((this) context);
이유를 시도 내가 CHEC 때이다 확인란을 선택하고 다른 항목을 스크롤하면 선택한 확인란이 자동으로 선택 취소됩니다.이 문제를 해결하는 방법을 알려주시겠습니까? 당신이 컨텍스트를 전달하는 데 필요한 있도록
가 여기 내 어댑터 코드 그것은 당신이 함께 일 예제 코드처럼 보이는
@Override public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder=null;
View itemView = convertView;
if (itemView == null){
LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
itemView = inflater.inflate(R.layout.item, null);
holder = new ViewHolder();
holder.textView1 = (TextView) itemView.findViewById(R.id.textView1);
holder.check1 = (CheckBox) itemView.findViewById(R.id.check1);
holder.check2 = (CheckBox) itemView.findViewById(R.id.check2);
itemView.setTag(holder);
}
else{
holder = (ViewHolder) itemView.getTag();
}
holder.check1.setTag(position);
final Item item = items.get(position);
holder.textView1.setText(item.getName());
holder.check1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(buttonView.isPressed()){
if (position != ListView.INVALID_POSITION) {
Item p = items.get(position);
p.setSelected(isChecked);
}
}
}
}
);
holder.check2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(buttonView.isPressed()){
if (position != ListView.INVALID_POSITION) {
Item p = items.get(position);
p.setSelected(isChecked);
}
}
}
}
);
holder.check1.setChecked(item.isSelected());
holder.check2.setChecked(item.isSelected());
return itemView;
}
}private static class ViewHolder {
public TextView textView1;
public CheckBox check2,check1;
}}
의 어댑터 코드를 업데이트 한 다음 어댑터 및 활동 코드 –
을 게시했습니다. 시도했지만 작동하지 않습니다. 'if (buttonView. isPressed()) { int pos = lv.getPositionForView (buttonView); if (pos! = ListView.INVALID_POSITION) { 항목 p = items.get (pos); p.setSelected (isChecked); } } –
주석에 코드를 붙여 넣지 마십시오. 귀하의 질문에 어댑터 구현을 추가하십시오 –