2011-02-07 66 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

相关问题