Как вы получаете выбранное значение Spinner?

Я пытаюсь получить строку выбранных элементов из Spinner. До сих пор я получил это:

bundle.putString(ListDbAdapter.DB_PRI, v.getText().toString());

Это не работает и дает исключение для исключения класса (я думал, что могу наложить View на виджет, который наследует его. Очевидно, нет!) Итак, как вы получаете выбранное значение Spinner?

Ответ 1

Чтобы получить выбранное значение счетчика, вы можете следовать этому .

Создайте вложенный класс, который реализует AdapterView.OnItemSelectedListener. Это обеспечит метод обратного вызова, который будет уведомлять ваше приложение, когда элемент был выбран из Spinner.

Внутри метода onItemSelected этого класса вы можете получить выделенный элемент:

public class YourItemSelectedListener implements OnItemSelectedListener {

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

    public void onNothingSelected(AdapterView parent) {
        // Do nothing.
    }
}

Наконец, ваш ItemSelectedListener должен быть зарегистрирован в Spinner:

spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

Ответ 3

Просто используйте это:

spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString();

Это даст вам String выбранного элемента в Spinner.

Ответ 4

mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition()) работает на основе богатого описания.

Ответ 5

Зависит от того, в какой точке вы хотите "поймать" значение.

Например, если вы хотите поймать значение, как только пользователь изменит выбранный элемент spinner, используйте подход слушателя (предоставленный jalopaba)

Если вы скорее поймаете значение, когда пользователь выполнит конечную задачу, например, нажав кнопку "Отправить", или что-то в этом роде, ответ лучше предоставлен Rich.

Ответ 6

Это другой способ:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int pos, long arg3) {
            // TODO Auto-generated method stub

        }

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

        }
    });

Ответ 7

Чтобы получить только строковое значение внутри счетчика:

spinner.getSelectedItem() ToString();.

Ответ 8

Spinner spinner=(Spinner) findViewById(R.id.spinnername);
String valueinString = spinner.getSelectedItem().toString();

В случае значения Spinner int он выводит на int

int valueinInt=(int)(spinner.getSelectedItem());