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

안드로이드 커스텀 리스트뷰 체크 박스 질문

0 추천
lv.setOnItemClickListener(new OnItemClickListener() {
					            @Override
					            public void onItemClick(AdapterView<?> parent, View v, int position, long id){
					            	
					            	MyPageDTO data = adapter.getItem(position);
					            	data.setCheckedState(!data.getCheckedState());
					            	data.setPosition(position);
					            	holder.mCheckbox.setChecked(!data.getCheckedState());
//					            	adapter.
//					            	holder.mCheckbox.setChecked(true);
//					            	refresh();
					            	
//						                ListData mData = mAdapter.mListData.get(position);
//						                mData.setCheckedState(!mData.getCheckedState());
//						                mData.setPosition(position);
//						                mAdapter.dataChange();
					            }
					        });

oniem 리스너를 통해 클릭할 때마다 계속 getView로 새로 고침이 되어 데이터를 계속 다시가져오는 과정을 되풀이하여

생략하고 해당 position 에 대한 holder 를 건들여서 바로 체크박스의 수정사항을 보여주고 싶습니다.ㅠ.

	public class MypageHolder {
        public ImageView mProfile;
        public TextView mText;
        public TextView mDate;
        public TextView mSpcies;
        public TextView mSeq;
        public TextView mSeCd;
        public TextView mSexdstn;
        public CheckBox mCheckbox;
        public ProgressBar mProgressBar;
    }
	
	MypageHolder setHolder(View v){
		MypageHolder holder= new MypageHolder();
        holder.mProfile	= (ImageView) v.findViewById(R.id.mImage);
        holder.mText 	= (TextView) v.findViewById(R.id.mName);
        holder.mDate 	= (TextView) v.findViewById(R.id.mBirth);
        holder.mSpcies	= (TextView) v.findViewById(R.id.mSpcies);
        holder.mSeq		= (TextView) v.findViewById(R.id.animalSeq);
        holder.mCheckbox= (CheckBox) v.findViewById(R.id.animalChk);
        holder.mSeCd	= (TextView) v.findViewById(R.id.animalSeCd);
        holder.mSexdstn	= (TextView) v.findViewById(R.id.animalSexdstn);
        holder.mProgressBar = (ProgressBar) v.findViewById(R.id.animalprogressbar);
        return holder;
	}

 

익명사용자 님이 2015년 6월 25일 질문

1개의 답변

0 추천
질문의 의도가 잘 이해가 안되네요

가장 간단히 하는 법은 item변경 후 adapter의 notifyDataSetChanged();  호출하면 변경이 보이기는 하는데 느린데요

holder를 이용한 방법을 쓰고싶다는건가요?
지카 (540 포인트) 님이 2015년 6월 25일 답변
...