gpt4 book ai didi

php - android Volley 和 JSON

转载 作者:行者123 更新时间:2023-11-29 03:27:04 27 4
gpt4 key购买 nike

最近我一直在开发我被分配到的应用程序。我制作了一个 TextView 来显示我从我的树莓派 JSON url 加载的一些数据(我知道这很愚蠢,但我不在乎)。现在我想在称为“条形图”的东西中显示相同的数据。这是一个由 mikephil 制作的已知 api(如果您想知道,请使用“https://github.com/PhilJay/MPAndroidChart”)。我似乎无法让它工作。我让应用程序运行,它可以显示图形,但它没有用数据填充它,它保持在 0.0...

现在我的问题来了:谁能告诉我我做错了什么?

public class grafiek extends Activity {

//public static final String JSON_URL = "http://myip/test.php";
//public static String agv = "";
//public static String binnenschip = "";
/*public static String vrachtwagen;
public static String zeeschip;
public static String opslag;
public static String trein;
public static String diversen;*/

public static int agvz;
public static int binns;
/*public static int vracht;
public static int zschip;
public static int opsl;
public static int trei;
public static int divers;*/
//String aantalAgv = MainActivity.agv;
//String aantalBinnenschip = MainActivity.binnenschip;
//String aantalVrachtwagen=MainActivity.vrachtwagen;
//String aantalZeeschip=MainActivity.zeeschip;
//String aantalOpslag=MainActivity.opslag;
//String aantalTrein=MainActivity.trein;
//String aantalDiversen=MainActivity.diversen;
int counter = 0;
String loginURL="http://myip/test.php";
String datas = "";
RequestQueue requestQueue;
BarChart chart;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.grafiek);
if(savedInstanceState!=null){
Log.d("STATE", savedInstanceState.toString());
}
requestQueue = Volley.newRequestQueue(this);
chart = (BarChart) findViewById(R.id.chart);
JsonObjectRequest jor = new JsonObjectRequest(Request.Method.GET, loginURL, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {

try{

JSONArray ja = response.getJSONArray("result");
for(int i=0; i < ja.length(); i++){

JSONObject jsonObject = ja.getJSONObject(i);

// int id = Integer.parseInt(jsonObject.optString("id").toString());


String agv = jsonObject.getString("agv");
String binnenschip = jsonObject.getString("binnenschip");

agvz = Integer.parseInt(agv);
binns = Integer.parseInt(binnenschip);


}

}
catch(JSONException e){
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Volley","Error");

}
}
);
requestQueue.add(jor);
ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(agvz, 0));
entries.add(new BarEntry(binns, 1));
BarDataSet dataset = new BarDataSet(entries, "Aantal containers");

ArrayList<String> labels = new ArrayList<String>();
labels.add("AGV");
labels.add("Binnenschip");

BarChart chart = new BarChart(this);
setContentView(chart);

BarData data = new BarData(labels, dataset);
chart.setData(data);

chart.setDescription("Aantal containers per platform");

dataset.setColors(ColorTemplate.COLORFUL_COLORS);
if(counter == 0) {
chart.animateY(2500);
counter++;
}

如果有人能帮我解决这个问题,那就太好了!

最佳答案

由于 Volley 是异步的,所以你应该更新你的代码如下(请注意 //MOVE HERE...):

           JsonObjectRequest jor = new JsonObjectRequest(Request.Method.GET, loginURL, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {

try{

JSONArray ja = response.getJSONArray("result");
for(int i=0; i < ja.length(); i++){

JSONObject jsonObject = ja.getJSONObject(i);

// int id = Integer.parseInt(jsonObject.optString("id").toString());


String agv = jsonObject.getString("agv");
String binnenschip = jsonObject.getString("binnenschip");

agvz = Integer.parseInt(agv);
binns = Integer.parseInt(binnenschip);

// MOVE HERE...
ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(agvz, 0));
entries.add(new BarEntry(binns, 1));
BarDataSet dataset = new BarDataSet(entries, "Aantal containers");

ArrayList<String> labels = new ArrayList<String>();
labels.add("AGV");
labels.add("Binnenschip");

BarChart chart = new BarChart(this);
setContentView(chart);

BarData data = new BarData(labels, dataset);
chart.setData(data);

chart.setDescription("Aantal containers per platform");

dataset.setColors(ColorTemplate.COLORFUL_COLORS);
if(counter == 0) {
chart.animateY(2500);
counter++;
}
}

}
catch(JSONException e){
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Volley", "Error");

}
}
);
requestQueue.add(jor);

关于php - android Volley 和 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34665246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com