我想填充一個可擴展的listview使用JSON數據,JSON父級顯示正常,但孩子數據是從每個孩子的所有數組重複,請參考我的代碼,我是如何做for循環我無法理解問題出在哪裏請幫助我的朋友。Json數組for循環
ExpandListdata.java
private void loaditems() {
String url = Constant.commonurlyell + "data_standard_item_ind_new.php?rname=standardtakeaway&id=" + item;
Log.d("ITems", url);
final ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Loading...");
progressDialog.show();
JsonArrayRequest arrayRequest = new JsonArrayRequest(Request.Method.GET, url, (String) null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
ArrayList<Subitem_base> list = new ArrayList<Subitem_base>();
ArrayList<Subitem_base_child> ch_list = new ArrayList<Subitem_base_child>();
try {
for (int i = 0; i < response.length(); i++) {
JSONObject baseobj = response.getJSONObject(i);
JSONArray itemarry = baseobj.getJSONArray("items");
for (int k = 0; k < itemarry.length(); k++) {
JSONObject itmobj = itemarry.getJSONObject(k);
Subitem_base subitems = new Subitem_base();
subitems.setGroupitemname(itmobj.getString("BaseName"));
JSONArray subitemschildarray = itmobj.getJSONArray("subitems");
for (int j = 0; j < subitemschildarray.length(); j++) {
JSONObject subiteobj = subitemschildarray.getJSONObject(j);
Subitem_base_child subitembase = new Subitem_base_child();
subitembase.setChilditemname(subiteobj.getString("SubItemdesc"));
ch_list.add(subitembase);
}
subitems.setItems(ch_list);
list.add(subitems);
}
}
SubItem_ExpandAdapter subexpand = new SubItem_ExpandAdapter(getApplicationContext(), list);
sec.setAdapter(subexpand);
subexpand.notifyDataSetChanged();
progressDialog.hide();
} catch (JSONException e) {
e.printStackTrace();
}
progressDialog.dismiss();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("SecondleveError", String.valueOf(error));
}
});
arrayRequest.setRetryPolicy(new DefaultRetryPolicy(50000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
AppController.getInstance().addToRequestQueue(arrayRequest);
以下是我的JSON數據:
[{
"menu_name": "Beverages",
"items": [{
"id": 1,
"BaseName": "Coca-Cola",
"itemdesc": "",
"subitems": [{
"id": 1,
"SubItemdesc": "0.33L",
"SubItemprice": "0.90"
},
{
"id": 2,
"SubItemdesc": "1.5L",
"SubItemprice": "2.00"
}]
},
{
"id": 2,
"BaseName": "Diet Coca-Cola",
"itemdesc": "",
"subitems": [{
"id": 1,
"SubItemdesc": "0.33L",
"SubItemprice": "0.90"
},
{
"id": 2,
"SubItemdesc": "1.5L",
"SubItemprice": "2.00"
}]
},
{
"id": 3,
"BaseName": "Fanta",
"itemdesc": "",
"subitems": [{
"id": 1,
"SubItemdesc": "0.33L",
"SubItemprice": "0.90"
}]
},
{
"id": 4,
"BaseName": "Tango",
"itemdesc": "",
"subitems": [{
"id": 1,
"SubItemdesc": "0.33L",
"SubItemprice": "0.90"
}]
}]
}]
好,只是說你期待在列表中包含 –
http://sampletemplates.net/yell4food/json/data_standard_item_ind_new.php?rname=standardtakeaway&id=2870對不起,我忘了張貼JSON先生 –
在JSON兒童只包含兩個屬性,但它顯示的多屬性先生 –