Spinner.setOnItemClickListener 不工作

Spinner.setOnItemClickListener not working

这是我的代码:

transactionTypeSpinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(MainActivity.this, "Something changed", LENGTH_SHORT).show();
        }
    });

但不幸的是 OnItemClickListener 方法不起作用并显示此消息:setOnItemClickListener cannot be used with a spinner.

我该如何解决这个问题?

谢谢!

您需要使用setOnItemSelectedListener()

Register a callback to be invoked when an item in this AdapterView has been selected.

使用

transactionTypeSpinner.setOnItemSelectedListener()

而不是

transactionTypeSpinner.setOnItemClickListener()

示例代码

    transactionTypeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(MainActivity.this, "Something changed", LENGTH_SHORT).show();
        }

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

        }
    });

您不应该为微调器调用 OnItemClickListener。 Spinner 不支持项目点击事件。

 transactionTypeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() 
    {
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
        {
            Toast.makeText(MainActivity.this, "Something changed", LENGTH_SHORT).show();
        } // to close the onItemSelected
        public void onNothingSelected(AdapterView<?> parent) 
        {

        }           
    });

请尝试使用以下代码希望对您有所帮助

spinner.setOnItemSelectedListener(new OnItemSelectedListener() 
    {
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
        {
            String selectedItem = parent.getItemAtPosition(position).toString();
            if(selectedItem.equals("Add new category"))
            {
                 // do your stuff
            }
        } // to close the onItemSelected
        public void onNothingSelected(AdapterView<?> parent) 
        {

        }           
    });