it-swarm.com.de

Wie erhält man den ausgewählten Wert eines Spinners?

Ich versuche, die ausgewählte Elementzeichenfolge aus einer Spinner zu erhalten. Bisher habe ich folgendes bekommen:

bundle.putString(ListDbAdapter.DB_PRI, v.getText().toString());

Dies funktioniert nicht und führt zu einer Ausnahme bei der Klassenumwandlung (Ich dachte, ich könnte eine View in ein Widget umwandeln, das es erbt. Offensichtlich nicht!) Wie erhält man den ausgewählten Wert einer Spinner?

49
Matthew Hall

Um den ausgewählten Wert eines Spinners zu erhalten, können Sie diesem Beispiel folgen.

Erstellen Sie eine geschachtelte Klasse, die AdapterView.OnItemSelectedListener implementiert. Dadurch wird eine Rückrufmethode bereitgestellt, die Ihre Anwendung benachrichtigt, wenn ein Element aus dem Spinner ausgewählt wurde.

Innerhalb der "onItemSelected" -Methode dieser Klasse können Sie das ausgewählte Element abrufen:

public class YourItemSelectedListener implements OnItemSelectedListener {

    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
        String selected = parent.getItemAtPosition(pos).toString();
    }

    public void onNothingSelected(AdapterView parent) {
        // Do nothing.
    }
}

Schließlich muss Ihr ItemSelectedListener im Spinner registriert sein:

spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
71
jalopaba

Sie haben getSelectedXXX-Methoden aus der AdapterView-Klasse, von denen der Spinner abgeleitet ist:

getSelectedItem ()

getSelectedItemPosition ()

getSelectedItemId ()

53
Rich

Verwenden Sie einfach folgendes:

spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString();

Dadurch erhalten Sie die String des ausgewählten Elements in der Spinner

43
Tharaka Devinda

mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition()) arbeitet basierend auf Richs Beschreibung. 

16
Chrispix

Hängt davon ab, an welchem ​​Punkt Sie den Wert "einfangen" möchten.

Wenn Sie zum Beispiel den Wert abrufen möchten, sobald der Benutzer das ausgewählte Drehfeld-Element ändert, verwenden Sie den Listener-Ansatz (bereitgestellt von Jalopaba).

Wenn Sie den Wert lieber abrufen, wenn ein Benutzer die letzte Aufgabe ausführt, z. B. das Klicken auf eine Schaltfläche zum Senden, oder etwas anderes, dann ist die Antwort von Rich besser.

5
Tivie

Dies ist ein anderer Weg: 

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int pos, long arg3) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });
1
Sasa

Um nur den String-Wert innerhalb des Spinners zu erhalten, verwenden Sie Folgendes:

spinner.getSelectedItem().toString();
1
dandev91
Spinner spinner=(Spinner) findViewById(R.id.spinnername);
String valueinString = spinner.getSelectedItem().toString();

Falls Spinner-Werte int sind, wird die Typumwandlung in int vorgenommen.

int valueinInt=(int)(spinner.getSelectedItem());
0
Adnan Ali