커스텀 리스트뷰를 만들어 적용 후 데이터를 넣고 스크롤을 했더니 아이템 위치가 변경되는 현상이 발견.
생성한 Adapter의 getView에 홀더를 추가하여 데이터 변형을 방지 하였다.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
CustomViewHolder holder;
if ( convertView == null ) {
.. 생략
final TextView textview = (TextView)convertView.findViewById(R.id.custom_word_text);
textview.setText( m_List.get(pos).getWord() );
ImageButton btn = (ImageButton) convertView.findViewById(R.id.custom_word_listen);
holder = new CustomViewHolder();
holder.m_TextView = textview;
holder.m_ImgBtn = btn;
convertView.setTag(holder);
}
else {
holder = (CustomViewHolder) convertView.getTag();
}
if ( m_List.get(pos).isVisibleWord() ) {
holder.m_TextView.setText(m_List.get(pos).getWord());
}
else
holder.m_TextView.setText(m_List.get(pos).getMeaning());
return convertView;
}
public class CustomViewHolder {
public TextView m_TextView;
public ImageButton m_ImgBtn;
}