我是編程新手,我的當前應用程序只從我的服務器獲取數據,僅用於單個數據並將其輸入到textview中。但現在我已經成功地創建了一個PHP腳本,該腳本編碼具有多個值的JSONArray,但我不知道如何通過循環將值傳遞給android代碼,而且我也不知道如何填充我的listview。JSONArray到Android ListView
樣品JSON
[{"lnumber":"2","violation":"2"},{"lnumber":"2","violation":"No Helmet"}]
PHP腳本
$result = array();
$sql = "SELECT lnumber,violation FROM violators WHERE
lnumber='".$lnumber."'";
$stmt = $con->prepare($sql);
$stmt->execute();
$stmt->bind_result($lnumber, $violation);
while($stmt->fetch())
{
$temp = [
'lnumber'=>$lnumber,
'violation'=>$violation
];
array_push($result, $temp);
}
echo json_encode($result);
如何,我目前正從服務器的數據,並且僅使用TextView中顯示它。
的Android代碼
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
loading.dismiss();
showJSON(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getViolation.this,error.getMessage().toString(),Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void showJSON(String response)
{
try
{
String lnumber;
String violation;
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(getConfig.JSON_ARRAY);
JSONObject violationData = result.getJSONObject(0);
lnumber = violationData.getString(getConfig.KEY_LNUMBER);
violation = violationData.getString(getConfig.KEY_VIOLATION);
textViewResult.setText("License Number:\t"+lnumber+"\nViolation:\t"+violation);
}
PS: 我的列表視圖ID是ListView控件。如果有人可以幫助我如何顯示從服務器到列表視圖的多個數據將是一個非常大的幫助!
我似乎無法使用Asynctask,因爲我正在發佈php查詢的變量,並且響應是上面編碼的查詢。 –
你有一個PHP腳本返回一個JSON數據,對吧? – aditya1508
是的。 '[{「lnumber」:「2」,「violation」:「2」},{「lnumber」:「2」,「violation」:「No Helmet」}]'在這裏。 –