java - 一次随机显示 Hashmap 返回值

标签 java android

我试图在 TextView 中一次随机显示一个项目。我可以用下面的代码显示所有这些。

final HashMap<String, String> map = new HashMap<String, String>();
    NodeList nodes = doc.getElementsByTagName("item");
   // for (int i = 0; i < nodes.getLength(); i++) {
        // creating new HashMap


    for (int i = 0; i < nodes.getLength(); i++) {
        Element element = (Element) nodes.item(i);
        map.put(KEY_TITLE,parser.getValue(element, KEY_TITLE));



        menuItems.add(map);

        List<String> valuesList = new ArrayList<String>(map.values()); 
        int randomIndex = new Random().nextInt(valuesList.size()); 
       randomValue = valuesList.get(randomIndex); 
       Log.i("inside", randomValue);    
    }

     Collections.shuffle(menuItems);
     menuItems.add(map);
        next.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
             Log.i("outide",map.get(KEY_TITLE));    
                 myImage.setImageResource(imageArr[rgenerator.nextInt(imageArr.length)]);
            }
     });




 }
 }

谁能告诉我随机显示数据的最简单方法是什么?

谢谢

大家好,

这就是我想出的办法,它看起来像我想要的那样工作。

final ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

    XMLParser parser = new XMLParser();
    Document doc = parser.getDomElement(responseBody);
     NodeList nodes = doc.getElementsByTagName("item");

     for (int i = 0; i < nodes.getLength(); i++) {
            // creating new HashMap
       // for (int i = 0; i < nodes.getLength(); i++) {
            Element element = (Element) nodes.item(i);
            HashMap<String, String> map = new HashMap<String, String>();
            map.put(KEY_TITLE,parser.getValue(element, KEY_TITLE));


            menuItems.add(map);
          }


     Collections.shuffle(menuItems);
     Map<String, String> myValueMap = menuItems.get(0); 
     textView.setText(myValueMap.get(KEY_TITLE));
                next.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                     Collections.shuffle(menuItems);
                     Map<String, String> MapBtn = menuItems.get(0);
                       textView.setText(MapBtn.get(KEY_TITLE));
                        myImage.setImageResource(imageArr[rgenerator.nextInt(imageArr.length)]);
            }
         });

 }
 }

最佳答案

如果你想使用

随机化列表
Collections.shuffle(menuItems);

循环之后

关于java - 一次随机显示 Hashmap 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10376310/

相关文章:

java - 使用 currentTimeMillis 并关闭 6 小时

java - BeanIO 的 Xml 映射,列表未正确解释

java - Button.setOnclickListener(this) 的问题

android - SQLiteStatement - 列不是唯一的 - Android?

android - RTSP youtube 链接

java - 使用存储在 ASSETS 文件夹中的文本文件

java - 将 Java 移植到 AS3

java - 使用 boolean 值搜索重复项

java - SimpleDateFormat 解析 strftime 生成的日期时出现问题

java - 尝试从 TextView 获取值并将其发送到 firebase 引用,但应用程序崩溃了