2011-02-07 22 views
0

我正在從URL中檢索項目列表,並使用自定義ArrayAdapter在ListView中顯示它們。我最多顯示25個結果,但是從URL中檢索最多26個,因爲如果超過25個,我想顯示「下一個」鏈接。我試圖找出一種方法讓視圖中的最後一項顯示下一個鏈接,而不是圖像和其他項目顯示的兩個TextView。向下滾動,所有項目都顯示出應有的樣子,但最後一個項目繼續看起來像其他項目。當向後滾動時,每五個項目都是空白的(由於分隔線可以說它仍然存在)。如何爲ArrayAdapter的最後一項創建不同的視圖?

內getView:

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; 

在DDMS,它打印只爲最後一個項目的「前個產品」的標籤,而對於其餘的「其他項目」的標籤,但項目是不是根據if-else改變。在XML中,接下來設置爲不存在,所以在else中不需要改變。當我刪除if-else並且只留下else內的代碼時,該列表正常工作,但我需要下一個鏈接。對奇怪行爲的原因有什麼想法?如果您需要查看任何附加代碼或需要澄清所發生的事情,請告訴我。

回答

1

請發佈完整的getView代碼。 您返回查看;但是什麼是視圖,它是從xml convertView還是膨脹?

這裏是這樣,我如何得到最後一個項目不同的看法: 1.創建2佈局,先進行正常的項目,在getView的sencond的最後一個項目 2.(INT位置,查看convertView,ViewGroup以及母公司)

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 2011-02-07 20:10:19

相關問題