2011-02-07 3 views
0

URL에서 항목 목록을 검색하고 사용자 지정된 ArrayAdapter를 사용하여 ListView에 표시하고 있습니다. 나는 25 개 이상의 결과를 표시하지만 25 개가 넘는 경우 "다음"링크를 표시하기 때문에 URL에서 26 개까지 검색합니다.보기에서 마지막 항목을 표시하는 방법을 파악하려고합니다. 이미지 대신 다음 링크 및 다른 항목이 표시하는 두 개의 TextView. 아래로 스크롤하면 모든 항목이 원래대로 표시되지만 마지막 항목은 나머지 항목처럼 계속 표시됩니다. 백업을 스크롤 할 때마다 다섯 번째 항목이 모두 비어 있습니다 (분리 선 때문에 계속 표시됨).ArrayAdapter의 마지막 항목에 대해 다른보기를 만드는 방법은 무엇입니까?

내부의 getView :

DDM의에서
if (position + 1 == limit) { // Limit = 26, corresponding position is 25 
    Log.e("Last Item", String.valueOf(position)); 
    // Gone 
    image.setVisibility(8); 
    text.setVisibility(8); 

    // Visible 
    next.setVisibility(0); 
} else { 
    if (item != null) { 

     Log.e("Other item", String.valueOf(position)); 
     if (top_text != null) { 
      top_text.setText(item.getItemTitle(), BufferType.SPANNABLE); 
     } 
     if(bottom_text != null){ 
      bottom_text.setText(item.getItemDescription()); 
     } 
    } 
} 
return view; 

, 그것은 마지막 항목에 대한 "마지막 항목"태그를 인쇄하고 나머지 "기타 항목"태그하지만 항목이 존재하지 않습니다 if-else를 기반으로 변경되었습니다. XML에서 next는 사라 지도록 설정되어 있으므로 else에서 변경하지 않아도됩니다. if-else를 제거하고 else 내 코드 만 남겨두면 목록이 제대로 작동하지만 다음 링크가 필요합니다. 이상한 행동의 원인에 대한 아이디어가 있습니까? 추가 코드가 필요하거나 상황에 대한 설명이 필요하면 알려주십시오.

답변

1

getView의 전체 코드를 게시하십시오. 보기를 반환합니다. 하지만보기가 무엇입니까, 그것은 convertView 또는 XML에서 비정상적입니까? 1. (뷰 그룹의 부모를 INT 위치보기 convertView) 2 레이아웃, 일반 항목에 대한 처음의 getView에서 마지막 항목 2의 sencond을 만들

: 여기

내가 마지막 항목에 대해 서로 다른보기를 얻을 방법 방법입니다
View view = convertView; 
if (view == null) { 
LayoutInflater vi = (LayoutInflater) mContext 
         .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
view = vi.inflate(R.layout.xxx, null); 
} else { 
    //check if view is not layout we need (based on position), we need inflate from xml 
} 

//set text ... 
+0

보기는 convertView입니다. 나는 다른 레이아웃을 사용하는 것을 결코 생각하지 못했지만 트릭을했습니다. 감사! – Cameron

관련 문제