1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Spinner-Frage

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Murbertus, 03.01.2012.

  1. Murbertus, 03.01.2012 #1
    Murbertus

    Murbertus Threadstarter Junior Mitglied

    Beiträge:
    36
    Erhaltene Danke:
    0
    Registriert seit:
    24.11.2011
    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!
     
  2. swordi, 03.01.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    du musst deinem spinner einen onItemChangedListener geben.

    kann sein, dass er onItemSelectedListener heißt. aber sowas in der art
     
    Murbertus bedankt sich.
  3. Murbertus, 04.01.2012 #3
    Murbertus

    Murbertus Threadstarter Junior Mitglied

    Beiträge:
    36
    Erhaltene Danke:
    0
    Registriert seit:
    24.11.2011
    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?
     
  4. swordi, 04.01.2012 #4
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    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.
     
    Murbertus bedankt sich.
  5. Murbertus, 04.01.2012 #5
    Murbertus

    Murbertus Threadstarter Junior Mitglied

    Beiträge:
    36
    Erhaltene Danke:
    0
    Registriert seit:
    24.11.2011
    Ok, also so ?

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

    bzw.

    if (pos == 1)
    {
    //zu Activity y wechseln
    }
     
  6. Murbertus, 04.01.2012 #6
    Murbertus

    Murbertus Threadstarter Junior Mitglied

    Beiträge:
    36
    Erhaltene Danke:
    0
    Registriert seit:
    24.11.2011
    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?
     
  7. Tom299, 05.01.2012 #7
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    Du kannst z.B. nen Leereintrag oder Infoeintrag reinmachen, damit der Benutzer zuerst einen anderen Eintrag wählen muß, damit was passiert.
     
    Murbertus bedankt sich.
  8. Murbertus, 05.01.2012 #8
    Murbertus

    Murbertus Threadstarter Junior Mitglied

    Beiträge:
    36
    Erhaltene Danke:
    0
    Registriert seit:
    24.11.2011
    Danke @Tom, genau das habe ich gemacht, jetzt funktioniert es so, wie es soll. :)

    Vielen Dank für eure Hilfe!!
     

Diese Seite empfehlen