簡體   English   中英

如何獲得 Spinner 的選定值?

[英]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 方法:

獲取選定項()

getSelectedItemPosition()

getSelectedItemId()

只需使用這個:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM