java - 如何打印android中循环外打印的所有值

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

外侧 for 循环我也想打印所有菜单代码..请帮助我

最佳答案

您正在使用 map ,并且始终具有相同的键(“itemcode”),因此每次插入都会覆盖之前对 map 的插入,也许您应该只使用列出,或使用不同的键。

举例回答评论:

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

最后一件事 - map 中不能有两个相同的 key ,这违背了它的目的,而且毫无用处。如果您不打算通过键获取值,并且不使用该键,则首先不应使用 map 。

关于java - 如何打印android中循环外打印的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10009557/

相关文章:

android - 从 Android Gradle 访问 Azure DevOps 变量

java - 参数个数必须始终为偶数 : opennlp

java - 如何仅将最后30秒捕获到文件中?

java - 如何向 List<List<Object>> 类型添加数据

android - Picasso 绑定(bind)适配器 'a connection was leaked' 消息

java - 谷歌眼镜企业版2 : Failed to Initialize Debug Data

java - okhttp 从数组添加 post 参数

Java 1.7 仍然告诉我 switch 语句中的字符串不兼容

android - 为什么出现此错误 “Execution failed for task ':app:compileDebugJavaWithJavac'?

android - 使用 Android NDK 加密从普通 Android 应用程序传递的数据