Hallo ich bins mal wieder 
und zwar habe ich mir für meine Liste einen eigenen Adapter geschrieben der so aussieht:
Der Sinn des Adapters ist bis jetzt einen ListView mit alternierendem Hintergrund anzuzeigen, was auch funktioniert wie es soll. Die Frage ist jetzt, wie ich gezielt die Hintergrundfarbe von einem Listenelement ändern kann z.B. wenn ich ein Element anklicke, dass die Hintergrundfarbe dann blau wird. Ist das über den Adapter möglich? Habe es schon über "Selector" versucht, was aber irgendwie nicht wirklich funktionieren will.
Danke schonmal.
und zwar habe ich mir für meine Liste einen eigenen Adapter geschrieben der so aussieht:
Java:
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import stauende.classes.Stau;
class StauAdapter extends ArrayAdapter<Stau>
{
private Context context;
private List<Stau> data = null;
/**
* Default-Konstruktor
*
* @param context - Referenz der Activity
* @param layoutResourceId - Id des layouts, in dem die Liste angezeigt wird
* @param infoText - Stau-Array (Daten die angezeigt werden)
*/
public StauAdapter(Context context, int layoutResourceId, List<Stau> infoText)
{
super(context, R.layout.listrow, infoText);
this.context = context;
this.data = infoText;
}
/**
* Methode wird für jedes Item der ListView aufgerufen.
*/
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View row = convertView;
StauView sv = null;
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(R.layout.listrow, null);
sv = new StauView();
sv.text = (TextView) row.findViewById(R.id.listText);
row.setTag(sv);
Stau stau = data.get(position);
if (stau != null && sv != null)
{
sv.text.setText(stau.toString());
if (position % 2 == 1)
sv.text.setBackgroundColor(Color.rgb(41, 41, 41));
else
sv.text.setBackgroundColor(Color.BLACK);
}
return row;
}
@Override
public void notifyDataSetChanged()
{
super.notifyDataSetChanged();
}
public static class StauView
{
public TextView text;
}
}
Der Sinn des Adapters ist bis jetzt einen ListView mit alternierendem Hintergrund anzuzeigen, was auch funktioniert wie es soll. Die Frage ist jetzt, wie ich gezielt die Hintergrundfarbe von einem Listenelement ändern kann z.B. wenn ich ein Element anklicke, dass die Hintergrundfarbe dann blau wird. Ist das über den Adapter möglich? Habe es schon über "Selector" versucht, was aber irgendwie nicht wirklich funktionieren will.
Danke schonmal.