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

리스트뷰 홀더 재활용 문제

0 추천
  @Override
    public View getView(int position, View convertView, ViewGroup parent) {
       BibleVerse bean = items.get(position);

       ViewHolderItem holder;
       if(convertView == null){
           convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.bible_item,null);
           holder = new ViewHolderItem();

           holder.verseText = (TextView)convertView.findViewById(R.id.verse);
           holder.contentsText = (TextView)convertView.findViewById(R.id.content);
           //글씨크기변경
           holder.verseText.setTextSize(TypedValue.COMPLEX_UNIT_PX, Bible.globProg);
           holder.contentsText.setTextSize(TypedValue.COMPLEX_UNIT_PX, Bible.globProg );

           convertView.setTag(holder);
       }
           holder = (ViewHolderItem) convertView.getTag();


        holder.verseText.setText(String.valueOf(bean.verse));
        holder.contentsText.setText(String.valueOf(bean.content));

       return convertView;
    }

    public static class ViewHolderItem {
        public static TextView contentsText;
        public static TextView verseText;
    }

이렇게 홀더를 사용해서 리스트 뷰를 만들었는데요

리스트뷰가 나오는건 잘 나오는데 문제는 리스트뷰를 올리면 값이 이상해지는데

어떤 항목에서는 나왔던 값들이 다시나오고 어떤 항목은  지멋대로 바뀌고그러는데 제가 바꿔야 할 코드가 어디일까요..??

 

 

 

aofhdzzz1 (690 포인트) 님이 2018년 11월 30일 질문

1개의 답변

0 추천
 
채택된 답변
holder.verseText.setText("");

 holder.contentsText.setText("");

 holder.verseText.setText(String.valueOf(bean.verse));

 holder.contentsText.setText(String.valueOf(bean.content));

 

이렇게 텍스트뷰 초기화 한번하고 해보세요.
익명사용자 님이 2018년 11월 30일 답변
aofhdzzz1님이 2018년 12월 5일 채택됨
똑같이 복붙해서 했는데도 안되네요.....ㅜㅜ
...