마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

listview에 checkbox 사용시 스크롤 후에 체크가 되는 현상

0 추천

public View getView(int position, View convertView, ViewGroup parent) {
    final ViewHolder holder;
    LayoutInflater inflater = context.getLayoutInflater();
    if (convertView == null) {
        convertView = inflater.inflate(R.layout.apklist_item, null);
        holder = new ViewHolder();
        holder.cBox = (CheckBox)convertView.findViewById(R.id.checkbox1);
        holder.apkName = (TextView) convertView.findViewById(R.id.appname);
        holder.apklast = (TextView) convertView.findViewById(R.id.applast);
        holder.apkIcon= (ImageView)convertView.findViewById(R.id.appicon);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

 
    PackageInfo packageInfo = (PackageInfo) getItem(position);
    Drawable appIcon = packageManager.getApplicationIcon(packageInfo.applicationInfo);
    String appName = packageManager.getApplicationLabel(packageInfo.applicationInfo).toString();
    String apklast = packageManager.getApplicationLabel(packageInfo.applicationInfo).toString();
    appIcon.setBounds(0, 0, 80, 80);
    holder.cBox.setFocusable(false);
    holder.cBox.setClickable(false);
    holder.cBox.setChecked(((ListView) parent).isItemChecked(position));
    holder.cBox.setVisibility(View.VISIBLE);

    holder.apkIcon.setImageDrawable(appIcon);
    holder.apkName.setCompoundDrawablePadding(5);
    holder.apkName.setText(appName);
    holder.apklast.setText(apklast);

    return convertView;
}

 

체크박스를 처음에 터치하면 체크표시가 뜨질않지만 스크롤 후에는 체크가 뜨네요

터치하자마자 체크가 뜰려면 어떤부분을 수정해야하나요..?

monhjo7 (120 포인트) 님이 2016년 4월 7일 질문

1개의 답변

0 추천

리스트뷰에 체크넣는거 몇번해봤는데요 제일 확실한 방법은 체크 상태를 리스트하나 만들어서 저장시켜주는게 가장 간단할거에요 

 

그리고 

else {

holder.cBox . 리스너  null 값넣으시구요 ㅎㅎ 
        holder = (ViewHolder) convertView.getTag();
    }

 

윤슈슈슈 (3,030 포인트) 님이 2016년 4월 7일 답변
...