为什么“ spinner.getSelectedItem”仅检索列表中的第一项?

时间:2019-04-18 16:07:30

标签: java android

我的应用程序中有一个微调器,(显然)我希望该应用程序根据用户从微调器的列表中选择的项目进行操作。但是,使用此方法:

String itemFromSpinner = spinner.getSelectedItem().toString();

仅检索列表中的第一项。我还需要将其放在String中,因为这样我就可以像这样在if中使用该项目:

TextView textView = (TextView)findViewById(R.id.textView);
if (itemFromSpinner == "Mars") {
textView.setText("The fourth planet.");
} else {}

然后,代码本身将更加复杂。无论如何,这是我的微调器的XML文件:

<string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
</string-array>

编辑 这是spinner的代码:

Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.planets_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

1 个答案:

答案 0 :(得分:0)

尝试在onCreate内为您的微调器创建一个侦听器

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?>arg0, View view, int arg2, long arg3) {

        String selected_val= spinner.getSelectedItem().toString();

        Toast.makeText(getApplicationContext(), selected_val ,
                Toast.LENGTH_SHORT).show();
    }

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

    }
});

祝你好运