Wie drucke ich alle Schlüssel und Werte von HashMap in Android?
Lesezeit: 3 Minuten
Gopinath
Ich bin sehr neu in der Android-Entwicklung und versuche, HashMap in einem Android-Beispielprojekt zu verwenden. Jetzt mache ich ein Beispielprojekt zum Lernen von Android. Ich speichere nur Schlüssel und Werte in HashMap, ich möchte die Schlüssel und ihre Werte in EditView anzeigen. Ich habe den folgenden Code in meinem Beispielprojekt befolgt. Aber zuerst werden Schlüssel und Wert nur in EditView gedruckt.
Map<String, String> map = new HashMap<String,String>();
map.put("iOS", "100");
map.put("Android", "101");
map.put("Java", "102");
map.put(".Net", "103");
Set keys = map.keySet();
for (Iterator i = keys.iterator(); i.hasNext(); ) {
String key = (String) i.next();
String value = (String) map.get(key);
textview.setText(key + " = " + value);
}
In EditView iOS = 100 druckt nur. Ich möchte alle Schlüssel und ihren Wert in EditText drucken. Kann mir bitte jemand sagen wo ich falsch liege? Danke im Voraus.
Siehe diese Frage und viele andere: stackoverflow.com/questions/1066589/…
– Anton
18. Januar 2012 um 12:09 Uhr
Hallo Gopinath!! Ihr Code zum Abrufen und Festlegen des Hash-Map-Schlüsselwerts ist korrekt, aber Sie setzen diesen Wert auf nur eine textView .
– Deepak Sharma
18. Januar 2012 um 12:10 Uhr
Dank an alle. Ich habe die Antwort bekommen. Noch einmal danke ich Ihnen allen.
– Gopinat
18. Januar 2012 um 12:22 Uhr
for (Map.Entry<String,String> entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
// do stuff
}
Das liegt daran, dass Ihre TextView bei jeder Iteration neuen Text erhält und vorherige Werte weggeworfen werden. Verketten Sie Strings mit StringBuilder und setzen Sie den TextView-Wert nach der Schleife. Sie können auch diese Art von Schleife verwenden:
for (Map.Entry<String, String> e : map.entrySet()) {
//to get key
e.getKey();
//and to get value
e.getValue();
}
Mit Gson geht es einfacher:
Log.i(TAG, "SomeText: " + new Gson().toJson(yourMap));
Könnten Sie bitte in einer Erklärung bearbeiten, warum dieser Code die Frage beantwortet? Nur-Code-Antworten sind entmutigtweil sie die Lösung nicht lehren.
– Nathan Tuggy
2. November 2016 um 23:25 Uhr
OP möchte alle Schlüssel und Wertepaare drucken. Ich glaube nicht, dass es hier einer Erklärung bedarf. Es ist ein sehr alter Thread, schon beantwortet, und auch keine Hirnsache. Ich habe ja schon geschrieben falls jemand eine Lösung in Java8 sucht, er/sie kann sowas machen.
– mdev
4. November 2016 um 1:37 Uhr
mdev – Es gibt hier viele Neulinge, die von einer Erklärung profitieren würden, auch wenn es für einen Experten wie Sie offensichtlich ist. Wenn Sie eine Erklärung geliefert hätten, hätten Sie vielleicht entdeckt, dass Ihre Lösung falsch ist; (Die “Ergebnis”-Variable ist nicht spezifiziert). Es sollte sein: map.keySet().forEach(key -> System.out.println(key + “->” + map.get(key))); Wobei -> die Parameter (linke Seite) von der Implementierung (rechte Seite) trennt. Sehen howtodoinjava.com/java8/foreach-method-example und docs.oracle.com/javase/tutorial/java/javaOO/…
– Tihamer
30. März 2020 um 18:36 Uhr
Tihamer Danke für den Tippfehler. Ich habe die Antwort bearbeitet.
– mdev
31. März 2020 um 3:36 Uhr
Das will der OP Anzeige alle Schlüssel und Werte in einem Textfeld, und sein einziges Problem liegt in diesem Teil davon.
– Benutzer207421
31. März 2020 um 4:08 Uhr
11764200cookie-checkWie drucke ich alle Schlüssel und Werte von HashMap in Android?yes
Siehe diese Frage und viele andere: stackoverflow.com/questions/1066589/…
– Anton
18. Januar 2012 um 12:09 Uhr
Hallo Gopinath!! Ihr Code zum Abrufen und Festlegen des Hash-Map-Schlüsselwerts ist korrekt, aber Sie setzen diesen Wert auf nur eine textView .
– Deepak Sharma
18. Januar 2012 um 12:10 Uhr
Dank an alle. Ich habe die Antwort bekommen. Noch einmal danke ich Ihnen allen.
– Gopinat
18. Januar 2012 um 12:22 Uhr