Wie bekomme ich den vom Spinner ausgewählten Artikelwert zum String?


80

Ich habe 5 Spinner. Um es zusammenfassend zu machen.

Dies ist Spinner in XML

<Spinner
            android:id="@+id/text_interested"
            android:layout_span="2"
            android:layout_width="wrap_content"
            android:layout_height="60px"
            android:entries="@array/interestedarrays"
            android:prompt="@string/interestedprompt" />

Dies ist Spinner in Java

submitbtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
interested.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                        public void onItemSelected(
                                AdapterView<?> adapterView, View view,
                                int i, long l) {
                            interesting = interested.getItemAtPosition(i).toString();
                        }

                        public void onNothingSelected(
                                AdapterView<?> adapterView) {

                        }
                    });
    }
});

Erklärung hier:

Die Seite hat einen Button. Diese Schaltfläche liest die Daten vom Drehknopf, wenn sie gedrückt wird. Ich habe die Ausgabe damit überprüft

System.out.println(interested.getItemAtPosition(i).toString());

Es gab mir nichts, nicht einmal null.

Wie kann man den Wert abrufen und als Zeichenfolge verwenden?


Ich bin sicher, Sie möchten einen ausgewählten Gegenstand von einem Spinner, wenn der Benutzer auf eine Schaltfläche klickt
Paresh Mayani

Legen Sie den setOnItemSelectedListener außerhalb von onClick Ihrer Schaltfläche und innerhalb der Onclick-Methode fest. Verwenden Sie diese interessierte.getSelectedItem (). ToString ();
KK_07k11A0585

danke, mein Fehler war, den Hörer in Knopf-Hörer zu setzen, warum nicht antworten
Alan Lai

1
Willkommen :)
Erkunde

Antworten:


221

Versuche dies:

String text = mySpinner.getSelectedItem().toString();

Auf diese Weise können Sie Wert für verschiedene Spinner erhalten.


27
String Text = mySpinner.getSelectedItem().toString();

ODER

mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        Object item = parent.getItemAtPosition(position);
    }
    public void onNothingSelected(AdapterView<?> parent) {
    }
});

Aber wie bekomme ich Artikel 0?!
Alok Rajasukumaran

11

Sie können den ausgewählten Gegenstand von Spinner erhalten, indem Sie:

interested.getSelectedItem().toString();

6

Versuche dies

 final Spinner cardStatusSpinner1 = (Spinner) findViewById(R.id.text_interested);
    String cardStatusString;
    cardStatusSpinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

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

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

        }
    });

 final Button saveBtn = (Button) findViewById(R.id.save_button);
    saveBtn .setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            System.out.println("Selected cardStatusString : " + cardStatusString ); //this will print the result
        }
    });

6

Wenn Ihr Spinner mit einem SQLite-Cursor gefüllt wurde, lautet die Lösung:

Spinner mySpin = (Spinner) findViewById(R.id.myspin);
mySpin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
           SQLiteCursor item = (SQLiteCursor) parent.getItemAtPosition(position);
           String value = String.valueOf(item.getString(0));
           Toast.makeText(getApplicationContext(), "The option is:" + value , Toast.LENGTH_SHORT).show(); 
 }

PS: In item.getString(0)-> 0 ist der Index der Spalte am Cursor, die Sie erhalten möchten.


5

Zusätzlich zu den vorgeschlagenen,

String Text = mySpinner.getSelectedItem().toString();

Du kannst tun,

String Text = String.valueOf(mySpinner.getSelectedItem());

5

Holen Sie sich den ausgewählten Artikel mit Kotlin:

spinner.selectedItem.toString()

3

Wenn Sie einen Wert aus dem Spinner auswählen, erhalten Sie den ausgewählten Wert.

interested.getSelectedItem().toString();

3

Ich denke, Sie möchten das ausgewählte Element des Spinners, wenn Sie auf die Schaltfläche klicken.

Versuchen Sie getSelectedItem () :

spinner.getSelectedItem()

2

Der beste Weg, dies zu tun, ist: -

String selectedItem = spinner.getSelectedItem().toString();

Sie können die Dokumente hier beziehen: Spinner



2

Da ist die neueste Sprache für die Android-Entwicklung Kotlin. Hier erfahren Sie, wie wir dies in Kotlin mithilfe eines anonymen Objekts tun.

spinnerName?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
    override fun onNothingSelected(parent: AdapterView<*>?) {
       println("Nothing Selected")
    }

    override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
       val selectedString = yourList[position]
    }

}

Hier fragte niemand nach Kotlin.
user3099225

1

Durch die Implementierung des SpinnerAdapter für Ihr Adapterobjekt verwende ich interested.getItem(i).toString()


0
    spinnerType = (AppCompatSpinner) findViewById(R.id.account_type);
    spinnerType.setPrompt("Select Type");

    spinnerType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            TypeItem clickedItem = (TypeItem) parent.getItemAtPosition(position);
            String TypeName = clickedItem.getTypeName();
            Toast.makeText(AddAccount.this, TypeName + " selected", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.