52

我正在尝试从Spinner. 到目前为止,我已经得到了这个:

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

这不起作用并给出一个类转换异常(我以为我可以将 aView转换为继承它的小部件。显然不是!)那么你如何获得 a 的选定值Spinner

4

8 回答 8

73

要获取微调器的选定值,您可以按照此示例进行操作。

创建一个实现 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());
于 2010-04-16T11:49:12.087 回答
55

您有来自 Spinner 派生的 AdapterView 类的 getSelectedXXX 方法:

获取选定项()

getSelectedItemPosition()

getSelectedItemId()

于 2010-04-16T11:52:53.210 回答
46

只需使用这个:

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

这将为您String提供Spinner.

于 2012-02-13T11:12:56.667 回答
16

mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition())作品基于 Rich 的描述。

于 2011-08-14T19:33:18.190 回答
5

取决于您希望“捕捉”该值的哪一点。

例如,如果您想在用户更改微调器选定项时立即捕获值,请使用侦听器方法(由 jalopaba 提供)

如果您更愿意在用户执行最终任务(例如单击提交按钮或其他内容)时捕获该值,那么 Rich 提供的答案会更好。

于 2010-11-17T11:51:07.757 回答
1

这是另一种方式:

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

        }
    });
于 2015-08-19T07:03:54.077 回答
1

要仅获取微调器中的字符串值,请使用以下命令:

spinner.getSelectedItem().toString();
于 2015-09-29T15:47:56.503 回答
0
Spinner spinner=(Spinner) findViewById(R.id.spinnername);
String valueinString = spinner.getSelectedItem().toString();

如果 Spinner 值是int它的类型转换int

int valueinInt=(int)(spinner.getSelectedItem());
于 2017-06-19T17:04:59.113 回答