2014-01-31 9 views
0

내 앱에서 Facebook 그룹 타임 라인을 만들었습니다. FB 그룹에 게시물이 있고 안드로이드에서 목록보기로 설정했지만 목록보기를 스크롤하면 목록 항목에서 두 번째 이미지가 손실됩니다. 이미지 로더 클래스를 복제했지만 아무것도 변경되지 않았습니다.하나의 목록보기 항목에 두 개의 이미지가 있습니다.

스크롤하기 전에

Before Scroll

후 스크롤

다음

After Scroll

내 어댑터의 getView 방법입니다 :

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

    View vi = convertView; 
    ViewHolder holder; 
    if (convertView == null) { 
     vi = inflater.inflate(R.layout.announce_item, null); 
     holder = new ViewHolder(); 
     holder.textTitle = (TextView) vi.findViewById(R.id.textView1); 
     holder.image = (ImageView) vi.findViewById(R.id.imageView1); 
     holder.attachimage=(ImageView)vi.findViewById(R.id.attachimage); 
     holder.contentArea = (TextView) vi.findViewById(R.id.textView2); 
     vi.setTag(holder); 
    } else 
     holder = (ViewHolder) vi.getTag(); 

    holder.textTitle.setText(sender.get(position)); 
    String content = contentMessage.get(position); 
    holder.contentArea.setText(Html.fromHtml(content.replace("\n", "<br/>")+" "+type.get(position))); 
    holder.image.setTag(profilePicture.get(position)); 
    imageLoader.DisplayImage(profilePicture.get(position), activity, 
      holder.image); 
    if(type.get(position).equals("photo")) 
    { 
     holder.attachimage.setTag(attach.get(position)); 
     imageLoader3.DisplayImage(attach.get(position),activity,holder.attachimage); 
     System.out.println("To Loader: "+attach.get(position)); 
    } 
    else 
    { 
     holder.attachimage.setVisibility(View.GONE); 

    } 
    return vi; 
} 

답변

1

당신은 당신의 난에 표시 holder.attachimage을해야

if(type.get(position).equals("photo")) 
{ 
    holder.attachimage.setVisibility(View.VISIBLE);// you need to make it visible here 
    holder.attachimage.setTag(attach.get(position)); 
    imageLoader3.DisplayImage(attach.get(position),activity,holder.attachimage); 
    System.out.println("To Loader: "+attach.get(position)); 
} 
else 
{ 
    holder.attachimage.setVisibility(View.GONE); 

} 

당신이 holder를 사용하는 것처럼 같은 F 조건은보기가 특정 위치에 대한 보이지 않는됩니다 가정합니다. 이제 View에 액세스하려고 시도하면 if 상태가되고 모든 것이 실행되지만 가시성이 View.GONE으로 설정되고 다시 표시되지 않으므로 View.VISIBLE으로 설정되지 않았습니다.

+1

+1. 사진이 아닌 경우 setVisibility (GONE)을 사용하기 때문에 간단한 단어에서는 사진 인 경우 VISIBLE (가시성)을 설정해야합니다. –

0
// try this way 

1. Download AndroidQuery jar from here: 

http://code.google.com/p/android-query/downloads/detail?name=android-query-full.0.25.10.jar. 

2. Put this jar to your libs folder and right click on jar and Build Path -> Add to bulid path 

3. How to use see this example: 

AQuery androidQuery = new AQuery(this); 

androidQuery.id(yourImageViewId).image("imageUrl", true, true); 

// androidAQuery.id(img1).image(imageUrl, memeryCache, fileCache); 

// memeryCache : if give url image in Android Query memmery cache then it will not again get from server so set true if you not want to get from server on each time 
// fileCache : if give url image in Android Query file cache then it will not again get from server so set true if you not want to get from server on each time (In case memmery is not free or enough than it cache in file if we gave fileCache true) 
관련 문제