52

選択したアイテムの文字列をから取得しようとしていますSpinner。これまでのところ、私はこれを手に入れました:

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

これは機能せず、クラスキャストの例外が発生します(それを継承するウィジェットにをキャストできると思いましViewた。明らかにそうではありません!)では、どのようにして?の選択された値を取得しますSpinnerか?

4

8 に答える 8

73

スピナーの選択された値を取得するには、このに従うことができます。

AdapterView.OnItemSelectedListener を実装するネストされたクラスを作成します。これにより、アイテムがスピナーから選択されたときにアプリケーションに通知するコールバック メソッドが提供されます。

そのクラスの「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 メソッドがあります。

getSelectedItem()

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())リッチの説明に基づいて動作します。

于 2011-08-14T19:33:18.190 に答える
5

値を「キャッチ」するポイントによって異なります。

たとえば、ユーザーがスピナーで選択したアイテムを変更するとすぐに値を取得したい場合は、リスナー アプローチを使用します (jalopaba が提供)。

ユーザーが [送信] ボタンをクリックするなどの最終タスクを実行したときに値を取得する場合は、Rich が提供する回答の方が適しています。

于 2010-11-17T11:51:07.757 に答える
1

スピナー内の文字列値だけを取得するには、次を使用します。

spinner.getSelectedItem().toString();
于 2015-09-29T15:47:56.503 に答える
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 に答える