Android Frage zu eigenen Adaptern

undertaker

Mitglied
Hallo ich bins mal wieder :)

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.
 

Gregorrr

Bekanntes Mitglied
Google mal nach Color State List Resource mit ListView. Damit kann man die einzelnen Farben für die einzelnen Zustände einer ListView sehr leicht in XML angeben.
 

undertaker

Mitglied
Damit habe ich das irgendwie nicht hinbekommen, naja auf jeden Fall lag mein Problem daran, dass ich den Adapter nicht richtig verstanden hatte. Man kann sich nämlich einfach den index des geklicken Listenelements merken und in der getView() Methode des Adapters dann sowas machen:

Java:
if (position == MainActivity.listClickedIndex)
	sv.text.setBackgroundColor(Color.rgb(27, 82, 112));

text ist hier ein TextView. Damit funktioniert das zumindest so wie ich das will, ob es die beste Lösung ist, weiß ich auch nicht xD Aber trotzdem Danke für die Antwort.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Frage zu OnClickListener. Verständnisproblem Android & Cross-Platform Mobile Apps 5
xXSkyWalkerXx1 Android Bluetooth LE - Frage zur Funktionalität Android & Cross-Platform Mobile Apps 26
M Frage zu setContentDescription Android & Cross-Platform Mobile Apps 2
G Google Play Store Design Frage Android & Cross-Platform Mobile Apps 2
Augenblau Android Frage zu den unterschiedlichen Menüarten Android & Cross-Platform Mobile Apps 0
S AsyncTask und doInBackground Frage Android & Cross-Platform Mobile Apps 2
L Android Generelle Frage zur Spieleprogrammierung unter Android Android & Cross-Platform Mobile Apps 2
H Frage bei erstellen eines Projectes Android & Cross-Platform Mobile Apps 3
G Wissen frage - wo am besten Speichern. Android & Cross-Platform Mobile Apps 1
B Android Verständnis frage zu Threads//AsyncTasks Android & Cross-Platform Mobile Apps 10
J Android ganz kurze frage Android & Cross-Platform Mobile Apps 2
K Android Frage zu Themes/Styles Android & Cross-Platform Mobile Apps 5
kaoZ Android Allgemeine Frage zum Händeln mehrerer EditTextfelder Android & Cross-Platform Mobile Apps 25
R Frage zu Widgets Android & Cross-Platform Mobile Apps 2
B Kurze Frage zu Play Store? Android & Cross-Platform Mobile Apps 2
U Android Kleine ImageButton Frage Android & Cross-Platform Mobile Apps 2
U Android ListView Frage Android & Cross-Platform Mobile Apps 6
M Frage zu Java Programm für Windows Mobile 6.5 Android & Cross-Platform Mobile Apps 2
P Allgemeine frage bzg. Android Android & Cross-Platform Mobile Apps 10
H FileConnection: Frage nach Dateisystem-Zugriff unterdrücken Android & Cross-Platform Mobile Apps 5
W Feedback zur eigenen App + paar Fragen Android & Cross-Platform Mobile Apps 10
S Die Erstellung einer eigenen App,Kosten? Android & Cross-Platform Mobile Apps 1
kaoZ Android Serialisierung von Eigenen Objekten Android & Cross-Platform Mobile Apps 7

Ähnliche Java Themen

Neue Themen


Oben