如何打印所有值在android循环外打印

时间:2012-04-04 10:45:56

标签: java android

我可以从数据库中获取菜单代码我可以在内部打印for循环意味着它会打印所有菜单代码。如果我打印循环外侧意味着它只打印最后一个值

         my code
     JSONArray json = jArray.getJSONArray("mainmenu");

         for ( i = 0; i < json.length(); i++) {

                JSONObject e = json.getJSONObject(i);
            map.put("itemcode", e.getString("menucode"));   //here i print all values  


         }
      list.setOnItemClickListener(new OnItemClickListener() {   

        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            System.out.println(map.get("itemcode"));//here i print only last value(here i want print all values how can i do this)
            // TODO Auto-generated method stub
            Intent intent=new Intent(getApplicationContext(),FoodMenu.class);
            startActivity(intent);
        }
    });

out for for loop我也希望打印所有菜单代码..请帮帮我

1 个答案:

答案 0 :(得分:1)

您正在使用地图,并且您始终拥有相同的密钥("itemcode"),因此每次插入都会覆盖之前插入地图的内容,也许您只需使用List,或者使用不同的密钥。

通过举例回答评论:

  1. 使用ArrayList / List

    List<String> codez = new ArrayList<String>();
    for ( i = 0; i < json.length(); i++) {
        JSONObject e = json.getJSONObject(i);
        codez.add(e.getString("menucode"));
    }
    
  2. 使用不同的键:

    for ( i = 0; i < json.length(); i++) {
        JSONObject e = json.getJSONObject(i);
        map.put("itemcode" + i, e.getString("menucode"));
    }
    
  3. 最后一件事 - 你不能在地图上有两个相同的键,它会破坏它的目的,而且它没用。如果您不打算通过键获取值,并且如果未使用该键,则不应首先使用地图。