10

このスレッドで同様の質問をたくさん読みましたが、どれも役に立ちません...これは私のコードです:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Spinner spinner = (Spinner) findViewById(R.id.imc_spinner);
    // Create an ArrayAdapter using the string array and a default spinner layout
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
    R.array.imc_array, android.R.layout.simple_spinner_item);
    // Specify the layout to use when the list of choices appears
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    // Apply the adapter to the spinner
    spinner.setAdapter(adapter);

}

public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
    // An item was selected. You can retrieve the selected item using

    imc_met = parent.getItemAtPosition(pos).toString();

}

imc_met を として宣言しpublic String imc_met;ます。問題は、imc_met にスピナーの選択項目の値が含まれていないことですが、null です...

問題はどこですか?

事前にt​​hx。

4

6 に答える 6

33

使用する:

imc_met=Spinner.getSelectedItem().toString();

その代わり:

imc_met = parent.getItemAtPosition(pos).toString();

更新しました:

リスナーをスピナーに正しく割り当てていないようです。以下のようにしてください。

spin.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                String imc_met=spin.getSelectedItem().toString();

            }

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

            }
        });
于 2013-03-21T11:13:10.703 に答える
7

これを試して:

imc_met=Spinner.getSelectedItem().toString();

ごめんなさい。忘れてた

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
        imc_met=Spinner.getSelectedItem().toString();
        }
    }
于 2013-03-21T11:08:19.660 に答える
2

imc_met=spinner.getSelectedItem().toString();

いいえ

imc_met=Spinner.getSelectedItem().toString();
于 2014-08-03T06:56:33.637 に答える
1
int position = Arrays.asList(getResources().getStringArray(R.array.country_value_array)).indexOf(address.getCountry());

これにより、値によってインデックスが取得されます。

于 2013-08-30T06:26:27.027 に答える
0

スピナーが onCreate() メソッドで定義されていない場合は、これを使用する必要があります。

String spinner_value = ((Spinner)findViewById(R.id.spinner1)).getSelectedItem().toString(); 
于 2014-12-04T20:56:11.937 に答える