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.

16voto

RicardoSousaDev Punkte 883

Warum verwenden Sie nicht Ihre Werte aus der DB und speichern Sie sie auf eine ArrayList und dann nur verwenden:

yourSpinner.setSelection(yourArrayList.indexOf("Category 1"));

13voto

Naham Al-Zuhairi Punkte 171

Die optimale Lösung ist:

    public String[] items= new String[]{"item1","item2","item3"};
    // here you can use array or list 
    ArrayAdapter adapter= new ArrayAdapter(Your_Context, R.layout.support_simple_spinner_dropdown_item, items);
    final Spinner itemsSpinner= (Spinner) findViewById(R.id.itemSpinner);
itemsSpinner.setAdapter(adapter);

Um die Position des Elements automatisch zu ermitteln, fügen Sie die folgende Anweisung hinzu

itemsSpinner.setSelection(itemsSpinner.getPosition("item2"));

7voto

ZygoteInit Punkte 465

Sie können eine generische Methode für diese Art von Arbeit erstellen, wie ich es in meiner UtilityClass tue, die lautet

public void SetSpinnerSelection(Spinner spinner,String[] array,String text) {
    for(int i=0;i<array.length;i++) {
        if(array[i].equals(text)) {
            spinner.setSelection(i);
        }
    }
}

6voto

אריאל עדן Punkte 157

In Kotlin habe ich eine einfache Lösung mit einem Lambda gefunden:

spinnerObjec.post {spinnerObjec.setSelection(yourIndex)}

6voto

Das können Sie ganz einfach so einstellen: spinner.setSelection(1) anstelle von 1 können Sie eine beliebige Position der Liste festlegen, die Sie anzeigen möchten.

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