1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. Murbertus, 03.01.2012 #1
    Murbertus

    Murbertus Threadstarter Junior 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!
     
  2. swordi, 03.01.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    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

    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

    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

    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

    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

    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

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

    Vielen Dank für eure Hilfe!!
     

Diese Seite empfehlen