470 Stimmen

Ausgewähltes Element des Spinners programmatisch einstellen

Ich arbeite an einem Android-Projekt und ich verwende einen Spinner, der einen Array-Adapter verwendet, der aus der Datenbank gefüllt wird.

Ich kann nicht herausfinden, wie ich das ausgewählte Element in der Liste programmatisch festlegen kann. Zum Beispiel, wenn ich in der Drehscheibe die folgenden Elemente habe:

  • Kategorie 1
  • Kategorie 2
  • Kategorie 3

Wie kann ich programmatisch die Kategorie 2 zum ausgewählten Element machen, wenn der Bildschirm erstellt wird? Ich dachte, es könnte ähnlich wie c# I.E Spinner.SelectedText = "Kategorie 2" sein, aber es scheint keine Methode ähnlich wie diese für Android zu sein.

5voto

pazfernando Punkte 537

Ich habe einen SimpleCursorAdapter, so dass ich die Daten für die Verwendung der Antwort in diesem Beitrag zu duplizieren haben. Ich empfehle Ihnen also, diesen Weg zu versuchen:

for (int i = 0; i < spinnerRegion.getAdapter().getCount(); i++) {
    if (spinnerRegion.getItemIdAtPosition(i) == Integer
        .valueOf(signal.getInt(signal
            .getColumnIndexOrThrow("id_region")))) {
        spinnerRegion.setSelection(i);
        break;
    }
}

Ich denke, das ist eine echte Möglichkeit

4voto

Donny Rozendal Punkte 760

Dies ist, was ich in Kotlin verwenden:

spinner.setSelection(resources.getStringArray(R.array.choices).indexOf("Choice 1"))

3voto

Arpit Patel Punkte 9027

Das ist Arbeit für mich.

 spinner.setSelection(spinner_adapter.getPosition(selected_value)+1);

3voto

Dante Punkte 732

Ich weiß, das ist bereits beantwortet, aber einfacher Code, um ein Element zu wählen, sehr einfach:

spGenre.setSelection( ( (ArrayAdapter) spGenre.getAdapter()).getPosition(client.getGenre()) );

3voto

Dies wird in Kommentaren an anderer Stelle auf dieser Seite erwähnt, aber ich dachte, es wäre nützlich, es in einer Antwort zu erwähnen:

Wenn ich einen Adapter verwende, habe ich festgestellt, dass die spinnerObject.setSelection(INDEX_OF_CATEGORY2) muss erfolgen nach die setAdapter aufrufen; andernfalls ist das erste Element immer die erste Auswahl.

// spinner setup...
spinnerObject.setAdapter(myAdapter);
spinnerObject.setSelection(INDEX_OF_CATEGORY2);

Dies wird durch die Überprüfung des AbsSpinner bestätigt Code para setAdapter .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X