Spinner-Frage

  • 7 Antworten
  • Neuester Beitrag
Diskutiere Spinner-Frage im Android App Entwicklung im Bereich Betriebssysteme & Apps.
M

Murbertus

Neues Mitglied
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!
 
S

swordi

Lexikon
du musst deinem spinner einen onItemChangedListener geben.

kann sein, dass er onItemSelectedListener heißt. aber sowas in der art
 
M

Murbertus

Neues Mitglied
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?
 
S

swordi

Lexikon
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.
 
M

Murbertus

Neues Mitglied
Ok, also so ?

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

bzw.

if (pos == 1)
{
//zu Activity y wechseln
}
 
M

Murbertus

Neues Mitglied
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?
 
T

Tom299

Stammgast
Du kannst z.B. nen Leereintrag oder Infoeintrag reinmachen, damit der Benutzer zuerst einen anderen Eintrag wählen muß, damit was passiert.
 
M

Murbertus

Neues Mitglied
Danke @Tom, genau das habe ich gemacht, jetzt funktioniert es so, wie es soll. :)

Vielen Dank für eure Hilfe!!
 
Ähnliche Themen - Spinner-Frage Antworten Datum
0
5