• Wir präsentieren Dir heute ein Stellenangebot für einen Frontend-Entwickler Angular / Java in Braunschweig. Hier geht es zur Jobanzeige

ListView mit Datenfüllen; HashMap´s

L

Lukas1979

Mitglied
Hallo zusammen,
ich bin ganz frisch hier im Forum und auch frisch in Java. Ich hoffe ihr könnt mir helfen.
Ich bin der Lukas :)

Ich habe eine Aufgabe zu lösen. Hierbei sollen Daten in einer HashMap gespeichert werden. Diese HashMap wiederum wird in einen ArrayList geaddet. Und wieder ArrayList wiederrum wird einer LisView (Android) zugewiesen. Das klappt soweit auch alles. Ich stehe nur total auf dem Schlauch wenn es nun darum geht mehrere Datensätze in die ArrayList zu mappen.
Ich kann die HashMap mehrmals in die ArrayList adden, das geht. Aber ich überschreibe mir den Vorherigen Datensatz. Mein Ansatz war aus der HashMap eine Array zusammen. Aber das scheint nicht möglich zu sein. Nun kann ich natürlich 10 HashMap´s anlegen. Das würde gehen, ist aber ja nicht sehr dynamisch.

Daher meine Frage, gibt es eine einfach Möglichkeit die Hashmap dynamisch zu führen ?

Danke für eure Hilfe.

HashMap:
public class SearchRequestActivity extends AppCompatActivity {

    static final int ids[]={R.id.textview_buchtitel,R.id.textview_buchautor,R.id.textview_buchseitenanzahl};
    static final String names[]={"titel", "authors", "pageCount"};


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search_request);
       
        HashMap<String, String> row = new HashMap<>();
        ArrayList<HashMap<String, String>> data = new ArrayList<HashMap<String, String>>();


        row.put(names[0],"I 1");
        row.put(names[1],"Autor 1, Autor 2");
        row.put(names[2],"2944 Seiten");

        data.add(row);
       
        Toast.makeText(this, row.toString(),Toast.LENGTH_LONG).show();
       
        row.put(names[0],"I 2");
        row.put(names[1],"Autor 1, Autor 2");
        row.put(names[2],"299 Seiten");

        data.add(row);

        Toast.makeText(this, row.toString(),Toast.LENGTH_LONG).show();

        SimpleAdapter adapter = new SimpleAdapter(SearchRequestActivity.this,data,R.layout.listview_search_item,names,ids);
        ((ListView)findViewById(R.id.listview_beucher)).setAdapter(adapter);
    }
 
F

fhoffmann

Top Contributor
Nebenbei gefällt es mir nicht, dass du eine HashMap benutzt mit
Java:
   row["title"] = "Bla";
   row["author"] = "Heinrich Schulze";
   row["pageCount"]  = "234";
Schöner fände ich hier eine eigene Klasse:
Java:
class Book {
  String title;
  String author;
  int pageCount;
  // ... Konstruktor, getter und setter
}
 
L

Lukas1979

Mitglied
Ja in einer eigenen Klasse wäre das schon besser aufgehoben. Ich versuch das mal wie du vorgschlagen hast umzubauen :)
 

Ähnliche Java Themen

Anzeige

Neue Themen


Oben