Spinnerが選択したアイテムの値を文字列に変換するにはどうすればよいですか?


81

私は5つのスピナーを持っています。これを要約するために。

これはxmlのSpinnerです

<Spinner
            android:id="@+id/text_interested"
            android:layout_span="2"
            android:layout_width="wrap_content"
            android:layout_height="60px"
            android:entries="@array/interestedarrays"
            android:prompt="@string/interestedprompt" />

これはJavaのSpinnerです

submitbtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
interested.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                        public void onItemSelected(
                                AdapterView<?> adapterView, View view,
                                int i, long l) {
                            interesting = interested.getItemAtPosition(i).toString();
                        }

                        public void onNothingSelected(
                                AdapterView<?> adapterView) {

                        }
                    });
    }
});

ここでの説明:

ページにボタンがあります。このボタンを押すと、スピナーからデータが読み取られます。これで出力を確認しました

System.out.println(interested.getItemAtPosition(i).toString());

それは私にnullさえも与えませんでした。

値を取得して文字列化する方法は?


確かに、ユーザーがボタンをクリックするたびにスピナーから選択したアイテムが必要です
Paresh Mayani 2012

ボタンのonClickの外側とOnclickメソッドの内側でsetOnItemSelectedListenerを設定し、このinterested.getSelectedItem()。toString();を使用します。
KK_07k11A0585 2012

おかげで、私の間違いは、なぜ応答しないのかというボタンリスナーの中にリスナーを入れたことでした
Alan Lai

1
ようこそ:)apiデモを探索してください... uはそこでより良い例を得ることができます
KK_07k11A0585 2012

回答:


225

これを試して:

String text = mySpinner.getSelectedItem().toString();

このように、さまざまなスピナーの価値を得ることができます。


27
String Text = mySpinner.getSelectedItem().toString();

または

mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        Object item = parent.getItemAtPosition(position);
    }
    public void onNothingSelected(AdapterView<?> parent) {
    }
});

しかし、アイテム0を取得する方法は?!
Alok Rajasukumaran 2016


7

スピナーにSQLiteカーソルが入力されている場合、解決策は次のとおりです。

Spinner mySpin = (Spinner) findViewById(R.id.myspin);
mySpin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
           SQLiteCursor item = (SQLiteCursor) parent.getItemAtPosition(position);
           String value = String.valueOf(item.getString(0));
           Toast.makeText(getApplicationContext(), "The option is:" + value , Toast.LENGTH_SHORT).show(); 
 }

PS:In- item.getString(0)> 0は、取得したいカーソル上の列のインデックスです。


よく働く。onItemSelectedメンバーの外で「value」をどのように使用しますか?
マルクト

6

これを試して

 final Spinner cardStatusSpinner1 = (Spinner) findViewById(R.id.text_interested);
    String cardStatusString;
    cardStatusSpinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent,
                View view, int pos, long id) {
            cardStatusString = parent.getItemAtPosition(pos).toString();
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });

 final Button saveBtn = (Button) findViewById(R.id.save_button);
    saveBtn .setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            System.out.println("Selected cardStatusString : " + cardStatusString ); //this will print the result
        }
    });

6

Kotlinで選択したアイテムを取得します。

spinner.selectedItem.toString()

5

提案に加えて、

String Text = mySpinner.getSelectedItem().toString();

できるよ、

String Text = String.valueOf(mySpinner.getSelectedItem());

3

スピナーから任意の値を選択すると、選択した値が取得されます。

interested.getSelectedItem().toString();

3

ボタンがクリックされたときにスピナーの選択されたアイテムが欲しいと思います。

getSelectedItem()を試してください:

spinner.getSelectedItem()



2

Android開発の最新言語はKotlinです。これが、匿名オブジェクトを使用してKotlinでそれを行う方法です。

spinnerName?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
    override fun onNothingSelected(parent: AdapterView<*>?) {
       println("Nothing Selected")
    }

    override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
       val selectedString = yourList[position]
    }

}

ここでは誰もkotlinについて質問しませんでした。
user30992 2519年

1

私が使用するアダプタオブジェクトにSpinnerAdapterを実装することによって interested.getItem(i).toString()


0
    spinnerType = (AppCompatSpinner) findViewById(R.id.account_type);
    spinnerType.setPrompt("Select Type");

    spinnerType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            TypeItem clickedItem = (TypeItem) parent.getItemAtPosition(position);
            String TypeName = clickedItem.getTypeName();
            Toast.makeText(AddAccount.this, TypeName + " selected", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.