根据Web服务响应,自定义ListView具有不同的行布局

时间:2012-09-09 07:38:50

标签: android android-listview

我有ListView。

我有3组观点:

  1. ImageView的
  2. VideoView
  3. TextView的。
  4. 我有一个网络服务器,可以返回图像,视频和文本。因此,根据服务器的响应,我想在列表视图中为行添加视图。

    我知道使用自定义适配器来扩充自定义布局。

    我想知道如何使用自定义适配器来扩充视图类型?。

    例如:

    如果网络服务器返回图片,请膨胀图像视图。

1 个答案:

答案 0 :(得分:1)

将每个网络服务响应与ID 0相关联,用于图像,1用于文本,2用于视频。存储ID在ArrayList中。然后覆盖getItemViewType()和getViewTypeCount()。在getView()中扩展适当的视图。

   @Override

    public int getItemViewType(int position) 

    {

    int type;

    if (ID.get(position)== 0){
        type = TYPE_ITEM1;  //type 0 for image
    } else if (ID.get(position) == 1){
        type = TYPE_ITEM2; //type 1 for text
    }else {
        type = TYPE_ITEM3; //type 2 for videos
    }
    return type;
    }
@Override
public int getViewTypeCount() {
    return 3;    //three different layouts to be inflated
}