Android - 如何从微调器获取所选项目值并将其放入字符串?

Gim*_*y88 10 android spinner

我在这个帖子上读了许多类似的问题,但没有一个能帮助我...这是我的代码:

@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();

}
Run Code Online (Sandbox Code Playgroud)

我宣布imc_met为public String imc_met;.问题是imc_met不包含微调器的选定项的值,但它是null ...

哪里出了问题?

Thx提前.

Rob*_*ood 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

            }
        });
Run Code Online (Sandbox Code Playgroud)


Lin*_*vel 7

试试这个:

imc_met=Spinner.getSelectedItem().toString();
Run Code Online (Sandbox Code Playgroud)

对不起.我忘了

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
        imc_met=Spinner.getSelectedItem().toString();
        }
    }
Run Code Online (Sandbox Code Playgroud)