2010-04-16 41 views
46

我想从Spinner中获取选定的项目字符串。到目前为止,我已经得到了这一点:如何获得Spinner的选定值?

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

这不工作,给一个类铸件例外(我以为我可以投一个View来继承它一个小部件显然不是!)那么,你如何选择价值Spinner

回答

72

要获得微调器的选定值,您可以按照此example

创建一个实现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.setOnItemSelectedListener(new MyOnItemSelectedListener()); 
+0

谢谢,这看起来不错!通过嵌套你的意思是在另一种方法(例如创建一个新的视图)? – 2010-04-16 11:56:42

+0

不客气。嵌套类:http://java.sun。com/docs/books/tutorial/java/javaOO/nested.html – jalopaba 2010-04-16 12:20:53

+0

感谢您的信息! t – 2012-03-02 01:32:12

5

取决于唉此时要 “抓” 的值。

举例来说,如果你想尽快用户更改微调所选项目赶值,使用监听器的方法(由jalopaba提供)

如果你愿意搭上值当用户执行最终像点击Submit按钮等任务,Rich提供的答案会更好。

16

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

+0

'mySpinner.getSelectedItem()'是一个较短的等价物。然后追加'.toString()'将其作为字符串获取。 – ToolmakerSteve 2014-09-22 23:14:16

41

只需使用这样的:

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

这会给你所选项目的StringSpinner

+2

我喜欢这个解决方案,因为如果目标仅仅是从Spinner中获得选定的值,那么接受的答案似乎过分了。 – ashack 2013-06-26 14:16:46

+5

'fields.getSelectedItem()。toString()'是一个较短的等价物。 – ToolmakerSteve 2014-09-22 23:14:44

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 

     } 
    }); 
1

得到公正的微调使用中的字符串值如下:

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

在案例微调值int类型转换它int

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