首页 > 解决方案 > 如何使用 volley 从 andorid 中的数据模型回收器视图中获取此信息?

问题描述

ArrayList arr = new Arraylist<>();

CartData class consist
 String food_name,
 String qty,
 String order_id

public void setFood(String foodName) {

    this.food_name = foodName;
}
public String getFood() {

     return food_name;
}

public void setQty(String qty) {

    this.qty = qty;
}
public String getQty() {

     return qty;
}

public void setOrderId(String orderId) {

    this.order_id = orderId;
}
public String getOrderId() {

     return order_id;
}

我得到这样的数据

{
    "cart_data": [
        {
            "food_name: "Dosa",
            "order_id": "66",
            "qty": "5", 
        }
        {
            "food_name: "Samosa",
            "order_id": "66",
            "qty": "10", 
        },
        {
            "food_name: "Chapathi",
            "order_id": "2",
            "qty": "1", 
        },
        {
            "food_name: "Biriyani",
            "order_id": "38",
            "qty": "11", 
        },
        {
            "food_name: "Samosa",
            "order_id": "38",
            "qty": "10", 
        }
    ],
   
}

我想在回收站视图中显示这样的数据

一阶

  1. 多萨,5
  2. 萨摩萨,10

二阶

  1. 查帕蒂,1

三阶

  1. 比里亚尼,11 岁
  2. 萨摩萨,10

分组是使用订单 ID 完成的,即,如果具有相同订单 ID 的项目将被分组在一起,如果只有一个项目。它也单独分组。像上面的例子。(见第二个订单)

我也想知道我需要如何调用适配器。

标签: javaandroidandroid-volley

解决方案


由于它是根据订单 ID 分组的,

你的json应该是这样的结构:

{
   "orders":[
      {
         "order_id":"66",
         "cart_data":[
            {
               "food_name":"Dosa",
               "order_id":"66",
               "qty":"5"
            },
            {
               "food_name":"Samosa",
               "order_id":"66",
               "qty":"10"
            }
         ]
      },
      {
         "order_id":"2",
         "cart_data":[
            {
               "food_name":"Chapathi",
               "order_id":"2",
               "qty":"1"
            }
         ]
      }
   ]
}

由于 json 结构具有单独列出的项目,因此您必须在模型级别修改结构。你的理想模型应该是这样的:

class Order {
    String orderId;
    List<CartData> cartDataItems;
}

class CartData {
    String food_name;
    String qty;
    String order_id;
}

第 1 步:将您的 json 序列化为List<CartData>

第 2 步:创建另一个列表List<Order>并将List<CartData>第 1 步中准备的数据添加到其中

第 3 步:将此列表List<Order>(来自第 2 步)传递给您的适配器

如果您有任何问题,请告诉我!


推荐阅读