Bagaimana untuk mendapatkan Spinner nilai?

Di Android, saya mencoba untuk mendapatkan yang dipilih Spinner nilai dengan pendengar.

Apa cara terbaik untuk mendapatkan spinner's nilai?

Larutan
Spinner mySpinner = (Spinner) findViewById(R.id.your_spinner);
String text = mySpinner.getSelectedItem().toString();
Komentar (2)

Spinner harus api "OnItemSelected" peristiwa ketika ada sesuatu yang dipilih:

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

Mengatakan ini adalah xml anda dengan spinner entri (ie. judul) dan nilai-nilai:



        Small
        Medium
        Large



        12
        16
        20

dan ini adalah anda spinner:

Kemudian dalam kode anda untuk mendapatkan entri:

Spinner spinner = (Spinner) findViewById(R.id.size_spinner);
String size = spinner.getSelectedItem().toString(); // Small, Medium, Large

dan untuk mendapatkan nilai-nilai:

int spinner_pos = spinner.getSelectedItemPosition();
String[] size_values = getResources().getStringArray(R.array.size_values);
int size = Integer.valueOf(size_values[spinner_pos]); // 12, 16, 20
Komentar (3)

Ya, anda dapat mendaftarkan sebuah listener melalui setOnItemSelectedListener(), seperti yang ditunjukkan di sini.

Komentar (1)
View view =(View) getActivity().findViewById(controlId);
Spinner spinner = (Spinner)view.findViewById(R.id.spinner1);
String valToSet = spinner.getSelectedItem().toString();
Komentar (0)

Jika anda sudah tahu item adalah String, yang saya sukai:

String itemText = (String) mySpinner.getSelectedItem();

Panggilan toString() pada sebuah Objek yang anda tahu adalah String sepertinya lebih bundaran jalan dari sekedar casting Objek untuk String.

Komentar (0)