Spinner-Frage

M

Murbertus

Neues Mitglied
0
Hallo!

Ich beschäftige mich gerade mit Spinner und habe dazu eine Frage:

In der Activity habe ich folgendes stehen:

Code:
spMain = (Spinner) findViewById(R.id.spMain);
        	ArrayAdapter adapter = ArrayAdapter.createFromResource( this, R.array.mainSpinnerValues , android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        	spMain.setAdapter(adapter);

public void OnItemSelected (AdapterView<?> parent, View view, int pos, long id) 
    {
				
			
	      
    }
	
	public void onNothingSelected(AdapterView parent) 
    {
      // Do nothing.
    }

arrays.xml:

Code:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    
    <string-array name = "mainSpinnerValues">
    	
    	<item>Crypt</item>
    	<item>Settings</item>
    	
    </string-array>	
    
</resources>

main.xml:

Code:
<Spinner
        android:id="@+id/spMain"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:prompt="@string/chooseView" />

Jetzt möchte ich, wenn man 'Crypt' auswählt, in die Crypt-Activity wechseln. Über einen Button klappt das auch ohne Probleme:

Code:
Intent intent = new Intent(MainActivity.this, CryptActivity.class);
				startActivity(intent);

Aber wie mache ich das jetzt mit dem Spinner? Der Code dazu müsste irgendwie in public void OnItemSelected, aber wie muss das dann aussehen? Das Spinner-Beispiel mit den Planeten auf d.android.com bringt mich nicht wirklich weiter. Geht das irgendwie über switch case?

Vielen Dank schonmal im Voraus!
 
du musst deinem spinner einen onItemChangedListener geben.

kann sein, dass er onItemSelectedListener heißt. aber sowas in der art
 
  • Danke
Reaktionen: Murbertus
Das habe ich hier gefunden: android - How to get Spinner value? - Stack Overflow

Code:
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
        // your code here
    }

    @Override
    public void onNothingSelected(AdapterView<?> parentView) {
        // your code here
    }

});

Aber wie frage ich genau ab, was der User gewählt hat? Das kommt ons onItemSelected, aber wie soll das dann aussehen? Über eine if-Abfrage?
 
naja du hast in der onItemSelected ja einen paramter der sich position nennt.

somit weißt du ja welches element geklickt wurde. hast den spinner ja auch mit daten gefüllt.
 
  • Danke
Reaktionen: Murbertus
Ok, also so ?

if (position == 0)
{
//zu Activity x wechseln
}

bzw.

if (pos == 1)
{
//zu Activity y wechseln
}
 
Sorry für den Doppelpost, aber es hat tatsächlich so funktioniert. :)

EIne letzte Frage noch: wenn ich dieApp öffne, wählt er sofort den ersten Wert des Spinners. Kann man das noch irgendwie ausstellen?
 
Du kannst z.B. nen Leereintrag oder Infoeintrag reinmachen, damit der Benutzer zuerst einen anderen Eintrag wählen muß, damit was passiert.
 
  • Danke
Reaktionen: Murbertus
Danke @Tom, genau das habe ich gemacht, jetzt funktioniert es so, wie es soll. :)

Vielen Dank für eure Hilfe!!
 

Ähnliche Themen

M
Antworten
2
Aufrufe
626
Mozart40
M
A
Antworten
1
Aufrufe
580
swa00
swa00
SpeedySix
Antworten
13
Aufrufe
1.398
jogimuc
J
Zurück
Oben Unten