4 Stimmen

Objekte in HashMap - Übergabe an ListView-Adapter

Ist es möglich, sowohl Strings und Drawables als Objekte in der gleichen HashMap zu übergeben, und dann diese HashMap verwenden, um eine ListView über SimpleAdapter zu befüllen?

Ich möchte dies, weil ich zunächst JSON-Daten erhalte, die auch die URL zu einem Vorschaubild enthalten. Dann lade ich dieses Thumbnail herunter. Entsprechender Code (denke ich):

for (...) {
    ...
    InputStream is = (InputStream)content;

    Drawable image = Drawable.createFromStream(is, "src");

    // Hashmap          
    HashMap<String, Object> map = new HashMap<String, Object>();

    map.put("title", new String(jsonObject.getString("Title")));
    map.put("thumb", image);

    mylist.add(map);
}

ListAdapter adapter = new SimpleAdapter(getActivity(), mylist, R.layout.listitem,
        new String[] { "title", "thumb"},
        new int[] { R.id.title, R.id.thumb });

setListAdapter(adapter);

R.id.title = TextView, und R.id.thumb = ImageView

Dies funktioniert für die Titelzeichenfolge, aber nicht für die Auslosung. Ist dieser Ansatz einfach nur dumm?

Vielen Dank im Voraus.

1voto

Gal Ben-Haim Punkte 17273

Sollten Sie eine XML-Layoutdatei für Ihre Zeilendarstellung in der Liste und einen benutzerdefinierten Adapter erstellen, der Ihre Zeile aufbläst

0voto

Giulio Piancastelli Punkte 14438

Soweit ich das beurteilen kann die SimpleAdapter Dokumentation , ImageView s werden nur für Bindungen mit einer Ressourcenkennung oder einer String die (die String , meine ich) muss eine Bildressource oder einen Bild-URI darstellen . Es wird nicht funktionieren, wenn Sie es direkt an eine Drawable Objekt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X