listview mit image füllen

  • hallo leute


    ich habe folgendes problem - meine listview sammelt einen namen aus einer datenbank und listet den in einer listview auf. nun möchte ich vor diesen namen noch ein image einsetzen, welches unter drawable gespeichert wurde.


    es kann passieren das mehrere einträge das selbe image haben ( also audi a3 und audi a4 usw ) bekommen das audi logo. einige fahrzeuge sind einzeln aufgeführt.


    wie kann ich das image den richtigen namen zuordnen ?

  • Also entweder du erstellst ein Objekt für Einträge oder aber du scannst den Namen der Hersteller aus dem Modellnamen heraus und setzt es mittels switch

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • ich häng mal den code an
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    conListView = getListView();
    conListView.setOnItemClickListener(viewConListener);


    // map each name to a TextView
    String[] from = new String[] { "vehicle" };
    int[] to = new int[] { R.id.TextView };
    conAdapter = new SimpleCursorAdapter(DatensatzList.this,
    R.layout.datensatz_list, null, from, to);
    setListAdapter(conAdapter); // set adapter


    unter vehicle sind sie alle aufgeführt - wie setze ich da ein image an ? beim anklicken des eintrages öffne ich ein intent welches den fahrzeug das richtige logo vergibt. aber iwe mahc eich dem listview das klar ?

  • Wenn du in deinem Layout schon ein ImageView drin hast, dann musst du in from die Tabellennamen reinschreiben und in to die ids deren die Tabelleninfos zugeordnet werden.
    Also im Prinzip das Gleiche, wie du das bei dem Text gemacht hast.
    Das meine ich zumindest.
    Siehe dazu auch die Doku:
    Doku SimpleCursorAdapter


    Edit:
    Doch ein bisschen anders als gedacht:
    http://stackoverflow.com/quest…es-in-simplecursoradapter
    Der Ansatz sollte helfen ;)

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Es muss aber irgendwo ein Kennzeichen für das jeweilige Bild hinterlegt werden und danach musst du halt nicht aus den Bytes das Bild erstellen sondern mit einer switch-Anweisung das jeweilige Bild setzen.

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Du wirst wohl deinem SimpleCursorAdapter einen ViewBinder spendieren müssen. Da drin kannst du dann den View weiter bearbeiten und u.a. Icons zum TextView vergeben.


    Java
    conAdapter.setViewBinder(viewBinder);


    Der ViewBinder könnte so ähnlich ausehen:



    Oder suchst du was ganz anderes??

  • Die Zeile mit dem setViewBinder() kommt nach deinen Zeilen mit new SimpleCursorAdapter = new SimpleCursorAdapter(....); - sonst würdest du eine NullPointerException um die Ohren gehauen bekommen, weil conAdapter ja noch nicht definiert ist.


    Und die Definition vom viewBinder ist eine Variable, die in der Klasse definiert wird - die kommt z.B. hinter deiner onCreate(...){...} - hinter die geschweifte Klammer und auf jeden Fall vor der allerletzten } am Dateiende.


    Hatte schon vermutet, dass du noch etwas neu mit Java bist, darum der Code, damit du weiterkommst. ;)


    Und wahrscheinlich musst du bei dir R.id.TextView statt R.id.item_TextView eintragen - wenn ich deinen Code-Ausschnitt richtig verstanden hab. Aber das steht bei dir ja hoffentlich als android:id="@+id/TextView" in der datensatz_list.xml.


    Ich würde die Datei ja lieber datensatz_list_item.xml nennen, dann weiß man gleich, dass die für einen einzelnen Eintrag und nicht für die ganze Liste ist. Darum auch meine Umbenennung auf item_TextView - liest sich besser, finde ich. :*

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!