onItemSelected 未在 Spinner 中调用

onItemSelected is not invoked in Spinner

我试图在我的应用程序中实现 Spinner。一切都正确显示,微调器也成功填充了项目。

我的问题: 当我 select 一个项目时,没有任何反应。

这是我在 onCreate 中的代码:

Spinner spinner;

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, eventTitles);
        arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner = (Spinner)findViewById(R.id.spinner);
        spinner.setAdapter(arrayAdapter);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

            Log.d("Spinner",adapterView.getItemAtPosition(i).toString());
                Toast.makeText(AdminActivity.this, "Hello Toast", Toast.LENGTH_SHORT).show();

            }

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

                Log.d("Spinner","Nothing selected!");

            }
        });

有什么建议吗?

谢谢! 亚历克斯

您已经再次在适配器中为微调器定义了布局,这不是必需的,请使用 OnItemSelectedListener 而不是 AdapterView.OnItemSelectedListener。

试试这个,

 Spinner spinner;

    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, eventTitles);
            spinner = (Spinner)findViewById(R.id.spinner);
            spinner.setAdapter(arrayAdapter);
            spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

                Log.d("Spinner",adapterView.getItemAtPosition(i).toString());
                    Toast.makeText(AdminActivity.this, "Hello Toast", Toast.LENGTH_SHORT).show();

                }

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

                    Log.d("Spinner","Nothing selected!");

                }
            });

如文档中所述,Spinner 不支持项目点击事件。要对用户点击做出反应,请改为调用 ArrayAdapter 对象的 setOnItemClickListener

我在 AsyncTask 中搞砸了。现在可以了!无论如何,谢谢大家的回答。