我可以从数据库中获取菜单代码我可以在内部打印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我也希望打印所有菜单代码..请帮帮我
答案 0 :(得分:1)
您正在使用地图,并且您始终拥有相同的密钥("itemcode"
),因此每次插入都会覆盖之前插入地图的内容,也许您只需使用List
,或者使用不同的密钥。
通过举例回答评论:
使用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"));
}
使用不同的键:
for ( i = 0; i < json.length(); i++) {
JSONObject e = json.getJSONObject(i);
map.put("itemcode" + i, e.getString("menucode"));
}
最后一件事 - 你不能在地图上有两个相同的键,它会破坏它的目的,而且它没用。如果您不打算通过键获取值,并且如果未使用该键,则不应首先使用地图。