在Spinner中不调用onItemSelected

时间:2017-01-21 14:16:50

标签: java android spinner

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

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

这是我在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!");

            }
        });

任何建议?

谢谢! 亚历

3 个答案:

答案 0 :(得分:0)

您已经为适配器中的微调器定义了布局,它不是必需的,并且使用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!");

                }
            });

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我在AsyncTask中弄乱了一些东西。现在它有效!无论如何,谢谢大家的答案。