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?

Alan Lai
quelle
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.

Bhavin
quelle
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) {
    }
});
Santoshpatmca
quelle
Aber wie bekomme ich Artikel 0?!
Alok Rajasukumaran
11

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

interested.getSelectedItem().toString();
Lalit Poptani
quelle
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
        }
    });
sush
quelle
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.

Mduarth
quelle
5

Zusätzlich zu den vorgeschlagenen,

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

Du kannst tun,

String Text = String.valueOf(mySpinner.getSelectedItem());
Max
quelle
5

Holen Sie sich den ausgewählten Artikel mit Kotlin:

spinner.selectedItem.toString()
Westy92
quelle
3

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

interested.getSelectedItem().toString();
Andy
quelle
3

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

Versuchen Sie getSelectedItem () :

spinner.getSelectedItem()
ngesh
quelle
2

Der beste Weg, dies zu tun, ist: -

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

Sie können die Dokumente hier beziehen: Spinner

Deepak Vardhan
quelle
2

Versuche dies

sp1 = String.valueOf(spinner.getSelectedItem());
Thasreef Mogral
quelle
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]
    }

}
Hanny
quelle
Hier fragte niemand nach Kotlin.
user3099225
1

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

GedankenNebel
quelle
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) {

        }
    });
Malith Ileperuma
quelle