【问题标题】:json parsed listview with different type of itemjson用不同类型的项目解析listview
【发布时间】: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


    【解决方案1】:

    您必须为您的列表视图定义一个自定义适配器,您可以在getView() 方法中扩展不同的视图。

    伪代码可以是:

    getView() {
      if(video item) 
        inflate video item row xml layout
      else if(image item)
        inflate image item row xml layout
      else if(audio item)
        inflate audio item row xml layout
      else if(text item)
        inflate text item row xml layout
    }
    

    【讨论】:

    • 是的,我知道,但是如何确定视频、图像等...在这?!
    • if语句中如何定义视频、图像、音频、文本?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多