99 votes

Comment obtenir Spinner sélectionné la valeur de l'élément à la chaîne ?

J'ai 5 Spinners. Afin d'en faire un résumé.

C'est Spinner en 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" />

C'est Spinner en 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) {

                        }
                    });
    }
});

Explication ici :

La page a un bouton. Ce bouton lira les données du spinner lorsqu'il est enfoncé. J'ai vérifié la sortie avec ceci

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

Ça ne m'a rien donné de nul.

Comment récupérer la valeur et l'enchaîner ?

258voto

Bhavin Points 2450

Essayez ceci :

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

De cette façon, vous pouvez obtenir de la valeur pour différents Spinners.

34voto

santoshpatmca Points 178
String Text = mySpinner.getSelectedItem().toString();

OU

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) {
    }
});

14voto

Prabuddha Points 37089

Vous pouvez obtenir l'élément sélectionné de Spinner en utilisant,

interested.getSelectedItem().toString();

8voto

sush Points 466

essayez ceci

 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
        }
    });

7voto

Mduarth Points 71

Si votre Spinner a été rempli par le curseur SQLite, alors la solution est :

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 : Dans item.getString(0) -> 0 est l'index de la colonne sur le curseur que vous voulez obtenir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X