如何使用条件单元格类型在ListView中动态添加项目?

时间:2017-03-05 15:54:03

标签: android listview

我尝试使用自定义单元格布局和ArrayAdapter在listview中添加动态数量的单元格,并且完成得很好。但是当我希望每个细胞可能跟随数据类型不同时,我会面临一个问题。

示例我在列表视图中有3个类别:

  1. 视频(video_custom_cell.xml)
  2. 照片(photo_custom_cell.xml)
  3. 音频(audio_custom_cell.xml)
  4. 如果数据是视频,那么我使用单元格编号1,否则如果数据是照片我使用photo_custom_cell,否则我使用audio_custom_cell。

    我所尝试的只能重复使用自定义单元格作为动态行数,但我仍然没有找到如何使用自定义单元格跟随单元格内的数据类型。

    任何人都可以帮我解释一下我的问题的例子吗?

    谢谢。

1 个答案:

答案 0 :(得分:0)

您可以为此使用自定义适配器,例如在getView功能中使用

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View rowView;
    if (convertView == null) {
        if(items.get(position).type.equals("video")) {
            rowView = getActivity().getLayoutInflater().inflate(
                    R.layout.video_custom_cell, null);
        }else if(items.get(position).type.equals("photo")) {
            rowView = getActivity().getLayoutInflater().inflate(
                    R.layout.photo_custom_cell, null);
        }
    } else {
        rowView = convertView;
    }
}