Eigener ArrayAdapter für ListView

  • 1 Antworten
  • Letztes Antwortdatum
L

laren

Neues Mitglied
0
Ich habe eine ListView, die einen selbst erstellten ArrayAdapter enthällt
Jedem Element wird ein Icon und ein Text(Tag 1- x) zugewiesen
Jetzt wollte ich individuell Icons zum jeweiligen Tag erstellen, dies funktioniert sehr gut in der getView Methode.

Das Problem ist jetzt nur, wie kann ich diese im Nachhinein nochmal ändern?
Ich müsste irgentwie auf die ImageView des jeweiligen Elementes zugreifen können.:huh:

Implementieren der Listview
PHP:
final ArrayAdapter<String> adapter = new TagesAuswahlArrayAdapter(getApplicationContext(),valueList);
        final ListView lv = (ListView)findViewById(R.id.listMenue);

        lv.setAdapter(adapter);
Der Adapter:
PHP:
/**
 * 
 */


import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;


public class TagesAuswahlArrayAdapter extends ArrayAdapter<String> {
    private final Context context;
    private final String[] values;
    private ImageView imageView;
    private View convertView;
    private ViewGroup parent;

    public TagesAuswahlArrayAdapter(Context context, String[] values) {
        super(context, R.layout.list_mobile, values);
        this.context = context;
        this.values = values;
    }

    @Override
    public String getItem(int position) {
        // TODO Auto-generated method stub

        return super.getItem(position);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        this.convertView = convertView;
        this.parent = parent;
        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View rowView = inflater.inflate(R.layout.list_mobile, parent, false);
        TextView textView = (TextView) rowView.findViewById(R.id.label);
        imageView = (ImageView) rowView.findViewById(R.id.logo);
        textView.setText(values[position]);

        // Change icon based on name
        String s = values[position];

        if (s.equals("Tag 1")) {
            imageView.setImageResource(R.drawable.check);
        }
        return rowView;
    }

}

Viele Grüße
 
hmm ich würde das so machen:

Anstelle von String würde ich dem adapter ein objekt geben. das objekt beinhaltet den string und eine id zum bild

dann kannst das objekt verändern wie du willst und der adapter updated sich (notifydatasetchanged)
 

Ähnliche Themen

BerndFfm
Antworten
7
Aufrufe
1.244
swa00
swa00
K
Antworten
3
Aufrufe
978
mezzothunder
mezzothunder
Zurück
Oben Unten