テキストビュー内に一度に1つのアイテムをランダムに表示しようとしています。以下のコードですべてを表示できます。
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)]);
}
});
}
}