【问题标题】:Unable to get json to listview working无法让 json 到 listview 工作
【发布时间】:2018-05-24 04:41:07
【问题描述】:

我已经有 PHP 从 MySQL 中提取信息并编码为 json,示例输出如下:

[{"name":"Player A","score":1459},{"name":"Player B","score":1434}]

我正在努力遵循可以将其解析为列表视图的指南。首先,它似乎过于复杂,需要自定义适配器、定义所有内容的大型自定义类等

我是否天真地认为应该有一种简单的方法可以从 URL 读取这些数据并分配给列表视图?我只需要基本记分牌的名称和分数字段。

即使我可以将整个输出拆分为字符串,这也绰绰有余,因为我可以执行 textview.setText(string1) 等等...

如果有人有一个从 URL 中提取 json 并能够将其传递给列表视图的工作示例,或者如果它更简单,能够将输出传递给字符串?

【问题讨论】:

  • 使用 Gson 读取 json 字符串并制作您的 json 字符串的模型类,将该模型类的 Arraylist 设置为您的客户列表的适配器。

标签: java android json string parsing


【解决方案1】:

解析json数据最好使用RecyclerView。这个链接是解析json数据最简单的方法。 http://androidcss.com/android/fetch-json-data-android/ 试试看:)

【讨论】:

  • @user9739950 首先你试试这个。这是原生方法。如果你想要最新的方法,你可以使用 Retrofit。
  • 我确实得到了部分工作,但它正在为每个项目滚动整个屏幕,并且每次也复制背景。在放弃并尝试其他东西之前,我玩了几个小时。
  • 此链接运行良好。在整个屏幕中滚动每个项目的原因是项目 xml 的设计问题。为 xml 中的小部件提供特定高度:)
  • 在无法正常工作后我早就删除了它-我尝试编辑布局高度,将其放入嵌套布局并限制其高度,所做的一切仍然是滚动整个内容每页一个项目,但在较小的窗口中。此外,对于我预期会容易得多的事情来说,这似乎还有很多额外的东西。
  • 好的,我再次查看并对其进行了调整以适合我的代码等,但现在我每个屏幕再次有一个列表项,因此它需要完整滚动才能显示每个“名称分数” - 如何我要把它们放在一个屏幕上吗?我的目标是每次拉 10 件物品,这样它们就很容易装了
【解决方案2】:

创建一个类SimpleModel.java

public class SimpleModel {


    private int score;
    private String name;

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

并像这样使用Gson 解析它

    String YOUR_RESPOSE_STRING = "";
    Gson gson = new Gson();
    Type lisType = new TypeToken<ArrayList<SimpleModel>>() {
    }.getType();
    ArrayList<SimpleModel> list = gson.fromJson(YOUR_RESPOSE_STRING, lisType);

【讨论】:

  • 请在此处添加对 URL 的调用?
  • 对于 url 调用,您必须使用 volley 、 Retrofit 并从 url 获取响应。我给出的这个答案是在查看响应后解析 json 数组
猜你喜欢
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
  • 2015-03-30
  • 1970-01-01
  • 2017-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多