2012-04-04 41 views
0

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

  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); 
     } 
    }); 

出方的回路我也想打印所有menucodes ..请帮我

+0

你为什么要在循环之外打印?如果你想在该循环之外打印,你需要创建另一个循环并再次遍历JSONArray,这将像遍历整个相同的数组两次,一次将值放入地图中,第二次循环打印它。 – 2012-04-04 10:51:44

回答

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")); 
    } 
    

最后一件事 - 你不能在地图上拥有两个相同的密钥,它会破坏它的目的,而且它是无用的。如果您不打算通过按键获取值,并且未使用该按键,则不应首先使用地图。

+0

我不想使用清单。请如何存储菜单代码在字符串数组..请重播 – prakash 2012-04-04 10:53:53

+0

@prakash - 请参阅编辑 – MByD 2012-04-04 11:14:44

+0

出侧循环我打印所有codes.now我比较如果(codez.equls(“1”))意味着它导航一页其他明智导航另一个页面。我怎么能使用列表 – prakash 2012-04-04 11:14:54