[英]display Hashmap return values one at a time random
我试图一次在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);
循环后
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.