2011-10-07 4 views
0

내 ListView에 대한 사용자 지정 어댑터가 있는데이 어댑터에 List를 보내면 위치에 목록이 있으면 사용자 정의 행에있는 imageview가 해당 목록을 변경합니다 나는 천천히 목록보기 스크롤ListView GetView() 메서드 위치의 이상한 동작

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder; 

    if (convertView == null) { 
     convertView = mInflater.inflate(R.layout.start_row, null); // line 
                    // 47 
     holder = new ViewHolder(); 

     holder.tv_SuraName = (TextView) convertView.findViewById(R.id.Start_Name); 

     holder.tv_SuraName.setTypeface(Font); 
     holder.tv_PageNumber = (TextView) convertView.findViewById(R.id.Start_Numbering); 
     holder.im_Audio = (ImageView) convertView.findViewById(R.id.Start_ImageView); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    holder.tv_SuraName.setText(SuraList_SuraNamesCode[position]); 
    holder.tv_PageNumber.setText(Integer.toString(PageNumber[position])); 
    holder.im_Audio.setOnClickListener(new imageViewClickListener(position)); 
    if (TilawaAvailable.contains(position)) 
     holder.im_Audio.setImageResource(R.drawable.quran_list_audioavailable); 
    return convertView; 
} 

내가 1 position.If으로 목록을 보내기 좋은 작품과 그것이 있어야로 단 1 이미지 뷰가 변경됩니다 : 다른 SRC는 .. 여기의 getView 방법입니다. 그러나 빠르게 스크롤하면 올바른 위치에 가까운 다른 이미지 뷰도 변경됩니다.
아무도 말해 줄 수 있습니까?

답변

2

위치가 목록에없는 경우 imageResource를 다른 것으로 설정하지 마십시오. 사용자 정의 이미지가있는보기가 화면을 떠날 때 목록의 더 낮은 위치에 배치되어 재사용 될 수 있습니다. 이 변경

시도 : 여기에

if (TilawaAvailable.contains(position)) 
     holder.im_Audio.setImageResource(R.drawable.quran_list_audioavailable); 

:

if (TilawaAvailable.contains(position)) 
     holder.im_Audio.setImageResource(R.drawable.quran_list_audioavailable); 
else 
     holder.im_audio.setImageResource(r.drawable.SOME_THING_ELSE); 
+0

감사합니다, 다른 퍼팅 트릭을했다. 그러나 목록 에 위치가 없다면 custom_row.xml의 기본 src 이미지가 원하는 값으로 설정됩니다. 왜 변경됩니까? – Omar

+0

이것은 뷰가 재사용된다는 사실과 그 뷰에 기본 리소스가 아닌 이미지가 포함되어 있기 때문에 잠재적으로 나타날 수 있다고 생각합니다. – hooked82

+0

@Omar hooked82가 정확합니다. 사용자 지정 이미지가 포함 된보기가 목록의 다른 위치에서 다시 사용되면 사용자 지정 이미지가 여전히 포함됩니다. 규칙은 변환 할보기를 얻을 때 사용자 정의해야하는 모든 항목을 사용자 정의해야합니다. – slayton