Android:在单个文本视图中使用来自字符串请求的结果



我已经能够使用凌空从URL中获取字符串。此字符串现在在文本视图中显示为一个块。但我希望能够在单独的文本视图中显示这些数据。我该怎么做?

也许重要的是要知道:我对编程是全新的,这是我做这件事的第一周。所以我使用的方法可能很奇怪,这可能是一个愚蠢的问题,但我只是想学习,得到我想要的结果。

这是我现在拥有的代码,用于从 url 获取数据:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
textView = findViewById(R.id.text);
queue = Volley.newRequestQueue(this);
StringRequest request = new StringRequest(Request.Method.GET, URL, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        textView.setText(response.toString());
        Toast.makeText(MainActivity.this,response.toString(),Toast.LENGTH_LONG).show();
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        Log.d("error",error.toString());
    }
});
queue.add(request);

这就是来自 url 的 GET 的结果的样子:

{"DeliveryDetailId":91003,"Delivery":{"DeliveryId":91,"DeliveryNumber":"1248","DropLocation":null,"DeliveryState":0},"ProductNumber":null,"Description":null,"PickLocation":"104","LocationCheck":null,"Quantity":64.0,"Histories":[],"BinNumberToUse":null}

因此,在这种情况下,我希望具有显示交货ID,拣货位置和数量的文本视图。如何从字符串中提取此信息,以便我可以在文本视图中显示它?

创建如下所示的模型类并将响应存储在响应中.class然后,您可以通过调用getDeliveryID((来访问DeliveryID。

  -----------------------------------com.saranga.app.model.Delivery.java-----------------------------------

package com.saranga.app.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Delivery {
@SerializedName("DeliveryId")
@Expose
private Integer deliveryId;
@SerializedName("DeliveryNumber")
@Expose
private String deliveryNumber;
@SerializedName("DropLocation")
@Expose
private Object dropLocation;
@SerializedName("DeliveryState")
@Expose
private Integer deliveryState;
public Integer getDeliveryId() {
return deliveryId;
}
public void setDeliveryId(Integer deliveryId) {
this.deliveryId = deliveryId;
}
public String getDeliveryNumber() {
return deliveryNumber;
}
public void setDeliveryNumber(String deliveryNumber) {
this.deliveryNumber = deliveryNumber;
}
public Object getDropLocation() {
return dropLocation;
}
public void setDropLocation(Object dropLocation) {
this.dropLocation = dropLocation;
}
public Integer getDeliveryState() {
return deliveryState;
}
public void setDeliveryState(Integer deliveryState) {
this.deliveryState = deliveryState;
}
}
-----------------------------------com.saranga.app.model.Response.java-----------------------------------
package com.saranga.app.model;
import java.util.List;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Response {
@SerializedName("DeliveryDetailId")
@Expose
private Integer deliveryDetailId;
@SerializedName("Delivery")
@Expose
private Delivery delivery;
@SerializedName("ProductNumber")
@Expose
private Object productNumber;
@SerializedName("Description")
@Expose
private Object description;
@SerializedName("PickLocation")
@Expose
private String pickLocation;
@SerializedName("LocationCheck")
@Expose
private Object locationCheck;
@SerializedName("Quantity")
@Expose
private Double quantity;
@SerializedName("Histories")
@Expose
private List<Object> histories = null;
@SerializedName("BinNumberToUse")
@Expose
private Object binNumberToUse;
public Integer getDeliveryDetailId() {
return deliveryDetailId;
}
public void setDeliveryDetailId(Integer deliveryDetailId) {
this.deliveryDetailId = deliveryDetailId;
}
public Delivery getDelivery() {
return delivery;
}
public void setDelivery(Delivery delivery) {
this.delivery = delivery;
}
public Object getProductNumber() {
return productNumber;
}
public void setProductNumber(Object productNumber) {
this.productNumber = productNumber;
}
public Object getDescription() {
return description;
}
public void setDescription(Object description) {
this.description = description;
}
public String getPickLocation() {
return pickLocation;
}
public void setPickLocation(String pickLocation) {
this.pickLocation = pickLocation;
}
public Object getLocationCheck() {
return locationCheck;
}
public void setLocationCheck(Object locationCheck) {
this.locationCheck = locationCheck;
}
public Double getQuantity() {
return quantity;
}
public void setQuantity(Double quantity) {
this.quantity = quantity;
}
public List<Object> getHistories() {
return histories;
}
public void setHistories(List<Object> histories) {
this.histories = histories;
}
public Object getBinNumberToUse() {
return binNumberToUse;
}
public void setBinNumberToUse(Object binNumberToUse) {
this.binNumberToUse = binNumberToUse;
}
}
你需要

解码你的JSONObject并单独获取每个元素,除非它在JSONArray在这种情况下,你需要遍历它

@Override
    public void onResponse(String response) {
        JSONObject json = new JSONObject(response);
        textView.setText(json.getString("DeliveryDetailld"));
        JSONObject details = json.getJSONObject("Delivery");
        //Get data in Delivery Object
        textView2.setText(details.getString("DeliveryId"));
    }

最新更新