Variablen Android: Spinner-Eintrag einen versteckten numerischen Wert zuordnen und Variable übergeben

Benutzer_name

Neues Mitglied
Hallo,
ich bin ein ziemlicher Neuling was Java angeht und habe gerade eine kleine Schwierigkeit.

Aus einem Android-App Tutorial heraus habe ich jeweils einem Spinner auf 2 unterschiedliche Arten für die Spinner Werte vergeben. (ich denke jedem ist dieses Tutorial geläufig, daher nur ein kleiner Ausschnitt)

Option A:
Code:
  // Direkte Angabe der Werte in der java
  public void addItemsOnSpinner2() {

	spinner2 = (Spinner) findViewById(R.id.spinner2);
        List list = new ArrayList();
        list.add("Item 1");
        list.add("Item 2");
        list.add("Item 3");
        list.add("Item 4");
	ArrayAdapter dataAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, list);
	dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
	spinner2.setAdapter(dataAdapter);
  }

Option B:
Code:
    // Oder über die Validierung in der xml
    <string-array name="country_array">
        <item>Greece</item>
        <item>United Kingdom</item>
        <item>Italy</item>
        <item>France</item>
        <item>Germany</item>
        <item>Turkey</item>
        <item>Poland</item>
        <item>India</item>
    </string-array>

Nun würde ich gerne den einzelnen Spinner-Werten(<item>) einen versteckten numerischen Wert zuordnen und den ausgewählten Wert einer Variablen übergeben; weiß aber leider nicht wie...

=> z.B. (dient nur der veranschaulichung):
string-array name="country_array" -> Germany = 2 oder country_array[4] = 2
double country_array = country_array[4]

oder,
spinner2 -> list.add("Item 3"); = 2
double spinner2 = spinner2 -> list.add("Item 3")


Am Besten auf beide Spinner-Arten. Welche Vor-/Nachteile hat die ein oder andere Variante?


Hilfe bitte.
 
Zuletzt bearbeitet:
du könntest z.B eine Switch anweisung mit einbinden wenn mich nicht alles täuscht

so in etwa

Java:
public class Foo
{
	private int index=0;
	
	public static void main(String[]args)
	{
		new Foo().los();
		
	}

	private void los() {
		
		index =1;
		
		switch(index)
		{
		case 1:
			System.out.println("Germany"); // hier dann anstelle von sysout dein Spinner item
		break;
		}
	}
	
}

so müsstest du deinem Spinner anstelle der Strings nur den index übergeben und anhand dessen steuert die switch anweisung dann die ausgabe
 
Zuletzt bearbeitet:
Ich versteh nicht ganz, was du machen willst. Eine Liste weist den Werten intern schon eine ID zu, in deinem Fall in der Einfügungsreihenfolge.
z.B. liste.get(0) ist der 1. Eintrag, in deinem Fall "Item 1"
Ich kenn mich zwar nicht mit Android aus, aber meine gewagte Vermutung ist, dass das Selbe auch dafür gilt. Also wäre bei dir country_array[0] z.B. "Greece", und dann der Reihenfolge nach weiter.
 
Zuletzt bearbeitet:
Wie jedes Array, bekommt auch jedes item der Arraylist automatisch einen Index zugewiesen, diesen kannst du mit
Code:
list.indexOf (i)
abrufen oder du kannst über
Code:
list.size ()
sehen wieviele Elemente in deiner arraylist gespeichert sind.
So kannst du auch feststellen am welcher Position z.b "Germany" gespeichert ist.
 

Neue Themen


Zurück
Oben