【发布时间】:2015-11-11 18:02:33
【问题描述】:
For 循环只显示一个项目,这是它的结尾,但我有 2 个项目。我必须添加列表视图吗?
这是我的 JSON: 在子项中,我有 2 个数组,其中仅显示 1 个数组,也只有 2 个项
这是我的 JSON:http://www.yell4food.com/json/data_standard_item_new.php?rname=standardtakeaway
这里的 For 循环我在子项中有 2 个项,但它只显示子项数组中的最后一项:
"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"
}
]
}
这是我的 Java 代码:
public class Secondlevel extends Activity {
List<JSONParser> itemsdata = new ArrayList<JSONParser>();
String item, ids;
ListView sec;
Second_adapter secondAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.secondlist);
sec = (ListView) findViewById(R.id.seondlst);
// sec.setScrollContainer(false);
secondAdapter = new Second_adapter(Secondlevel.this, itemsdata);
sec.setAdapter(secondAdapter);
Intent hello = getIntent();
item = hello.getStringExtra("name");
loaditems();
}
private void loaditems() {
String Tag = "jsontag";
String url = "http://www.yell4food.com/json/data_standard_item_new.php?rname=standardtakeaway";
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) {
try {
for (int i = 0; i < response.length(); i++) {
JSONObject first = response.getJSONObject(i);
JSONArray getitems = first.getJSONArray("items");
for (int j = 0; j < getitems.length(); j++) {
JSONObject sitems = getitems.getJSONObject(j);
JSONParser parser = new JSONParser();
parser.setIid(sitems.getInt("id"));
parser.setBaseName(sitems.getString("BaseName"));
parser.setItemdesc(sitems.getString("itemdesc"));
JSONArray subitems = sitems.getJSONArray("subitems");
for (int l = 0; l < subitems.length(); l++) {
JSONObject thrid = subitems.getJSONObject(l);
parser.setSid(thrid.getInt("id"));
parser.setSubItemdesc(thrid.getString("SubItemdesc"));
parser.setSubItemprice(thrid.getString("SubItemprice"));
}
itemsdata.add(parser);
}
secondAdapter.notifyDataSetChanged();
}
progressDialog.hide();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("TaG", "Error: " + error);
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_SHORT).show();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("Content-Type", "application/json");
params.put("name", item);
return params;
}
};
AppController.getInstance().addToRequestQueue(arrayRequest);
}
}
【问题讨论】:
-
请粘贴整个 JSON。
-
我认为是来自 url:yell4food.com/json/…
-
我添加了 JSON 链接,请检查一下