【发布时间】:2014-04-19 06:22:11
【问题描述】:
我解析了一个JSON api并将其放入ListView。我有不同类型的项目,如视频、音频、图像和文本。
意味着在一排,我可以有播放按钮和其他选项的声音。
我知道我应该使用GetViewTypeCount() 和 getViewItemType()。
JSON 是这样的
{
category: {
id: 2,
image: "/ringtone/media/cats/music.png",
title: "VARIOUS"
},
create_time: "2014-01-05T23:21:10",
file_url: "/media/sound/verysadrin_OnlRtRGn.mp3",
id: 28,
title: "Sad",
user: {
avatar: "/media/daddy_avatar/100/346186098ce0fc27be1ddbd95dcac2cf_100.jpg",
id: 12,
name: "MAY3AM"
}
},
{
category: {
id: 22,
image: "/ringtone/media/cats/video.png",
title: "VARIOUS_VIDEO"
},
create_time: "2014-02-05T23:21:10",
file_url: "/media/video/verysadrin_OnlR105n.mp4",
id: 28,
title: "Sad",
user: {
avatar: "/media/daddy_avatar/100/346186098ce0fc27be1ddbd95dcac2cf_100.jpg",
id: 12,
name: "MAY3AM"
}
},
{
category: {
id: 22,
image: "/ringtone/media/cats/video.png",
title: "NATURE"
},
create_time: "2014-03-05T23:21:10",
file_url: "/media/video/landscape.jpg",
id: 28,
title: "Landscape",
user: {
avatar: "/media/daddy_avatar/100/346186098ce0fc27be1ddbd95dcac2cf_100.jpg",
id: 12,
name: "MAY3AM"
}
},
如您所见,我有不止一种类型(声音、视频、图像和文本)。我想通过 CustomAdapter 在列表视图中解析它们!我想根据 json 对象类型将每一行膨胀为适当的 xml 文件。意味着如果我的 json 对象声音膨胀到R.layout.sound.xml,如果视频膨胀到R.layout.Video.xml 和....
但我无法弄清楚这部分,如何告诉我的 CustomAdapte 来确定何时显示特定视图?!
你知道吗,我在 Stack 中搜索过,有些答案说像 contact list 这样你想在奇数行和偶数行中显示,或者像 separator 的列表视图那样为每 4 或 5 行放置分隔符......
但我不想要这样的东西,因为我解析了一个 json 并且基于该数据应该显示正确的行类型。
我必须如何告诉自定义适配器该行必须扩展为声音 xml 文件或视频 xml 文件或其他类型?!
谁能帮我解释一下代码?
【问题讨论】:
标签: android json listview custom-adapter