[英]How do you get the selected value of a Spinner?
我正在嘗試從Spinner
中獲取選定的項目字符串。 到目前為止,我已經得到了這個:
bundle.putString(ListDbAdapter.DB_PRI, v.getText().toString());
這不起作用並給出類轉換異常(我認為我可以將View
轉換為繼承它的小部件。顯然不是!)那么如何獲得Spinner
的選定值?
要獲取微調器的選定值,您可以按照此示例進行操作。
創建一個實現 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());
您有來自 Spinner 派生的 AdapterView 類的 getSelectedXXX 方法:
只需使用這個:
spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString();
這將為您提供Spinner
中所選項目的String
。
mySpinner.getItemAtPosition(mySpinner.getSelectedItemPosition())
根據 Rich 的描述工作。
取決於您希望“捕捉”該值的哪一點。
例如,如果您想在用戶更改微調器選定項時立即捕獲值,請使用偵聽器方法(由 jalopaba 提供)
如果您更願意在用戶執行最終任務(例如單擊提交按鈕或其他內容)時捕獲該值,那么 Rich 提供的答案會更好。
這是另一種方式:
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
}
});
要僅獲取微調器中的字符串值,請使用以下命令:
spinner.getSelectedItem().toString();
Spinner spinner=(Spinner) findViewById(R.id.spinnername);
String valueinString = spinner.getSelectedItem().toString();
如果 Spinner 值是int
,則將其類型轉換為int
int valueinInt=(int)(spinner.getSelectedItem());
有用的代碼/語法可以簡單地獲取選定的索引/值並將其分配給一個合適的變量;
int i = ((Spinner)findViewById(R.id.spinnerDistance)).getSelectedItemPosition();
String s = ((Spinner)findViewById(R.id.spinnerDistance)).getSelectedItem().toString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.