Android Spinner mit Ids

freakyBOi

Mitglied
Hi,

Ich komme mit dem Android-Spinner irgendwie nicht so zu recht und ich konnte leider kein Tutorial finden, das mein Problem löst.

Ich hätte gerne einen Spinner mit String-Werten, wobei jeder Wert noch eine von mir festgelegte Id haben soll, die jedoch nicht angezeigt werden soll. Je nach dem welches Element angeklickt wurde, sollen dann für die Id entsprechende Werte aus der Db geholt werden.

Der Spinner an sich ist kein Problem:

Code:
	public void showDancerLists(){
                        Spinner listsSpinner = (Spinner) findViewById(R.id.listsSpinner);
			LinkedList<MyDataClass> lists = (LinkedList<MyDataClass>) db.getLists(); //hier hole ich Daten aus meiner Datenbank.
			ArrayList<String> items = new ArrayList<String>();
			items.add("You may select a list.");
			for(MyDataClass list:lists) {
				items.add(list.name);
			}
			ArrayAdapter<String> myAa = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items);
			myAa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
			listsSpinner.setAdapter(myAa);

	}

Mein Problem besteht jetzt, wie ich jedem Element noch zusätzlich eine Id geben kann und dann auf die Auswahl reagieren kann.

Falls jemand ein Tutorial für mein Problem kennt oder einen Tipp hat, wäre ich sehr dankbar.
 

eRaaaa

Top Contributor
Warum addest du denn nicht direkt die Liste mit den Objekten MyDataClass zum Spinner? Also anstatt einzelne Strings addest du eben die MyDataClass-Objekte dem Spinner hinzu?
 

freakyBOi

Mitglied
Hi,

schon mal danke für den Hinweis, dass ich dem ArrayAdapter beliebige Listen übergeben kann. Wie kann ich jedoch festlegen, was aus meinen MyDataClass-Objekten im Spinner angezeigt werden soll?

Meine Implementierung sieht inzwischen so aus:

Code:
	public void createListsSpinner(){
			Spinner listsSpinner = (Spinner) findViewById(R.id.listsSpinner);
			LinkedList<MyDataClass> lists = (LinkedList<MyDataClass>) db.getLists();

			ArrayAdapter<MyDataClass> myAa = new ArrayAdapter<MyDataClass>(this, android.R.layout.simple_spinner_item, lists);
			
			listsSpinner.setAdapter(myAa);
	}
 

eRaaaa

Top Contributor
Wie kann ich jedoch festlegen, was aus meinen MyDataClass-Objekten im Spinner angezeigt werden soll?

Gibt zwei Möglichkeiten. Die eine ist, du überschreibst die toString-Methode deiner MyDataClass
Java:
	@Override
	public String toString() {
		return name;
	}

Die andere wäre du überschreibst den ArrayAdapter bzw erstellst dir einen eigenen.
 

Ähnliche Java Themen

Neue Themen


Oben