java.lang.RuntimeException: setOnItemClickListener 不能与微调器一起使用

java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner

mSpinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                if (id == 2) {
                    showToast(getString(R.string.added_alert));
                    checkBoxAlarm.setEnabled(true);
                } else {
                    checkBoxAlarm.setEnabled(false);
                    checkBoxAlarm.setChecked(false);
                }
                if (id == 3) {
                    showToast(getString(R.string.notify));
                    checkboxnotify.setEnabled(true);
                } else {
                    checkboxnotify.setEnabled(false);
                    checkboxnotify.setChecked(false);
                }
            }

            public void onNothingSelected(AdapterView parent) {
            }
        });

当您想要比较所选项目在微调器中的位置时,您必须使用 position 代替 id

mSpinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                if (position == 2) {
                    showToast(getString(R.string.added_alert));
                    checkBoxAlarm.setEnabled(true);
                } else {
                    checkBoxAlarm.setEnabled(false);
                    checkBoxAlarm.setChecked(false);
                }
                if (position == 3) {
                    showToast(getString(R.string.notify));
                    checkboxnotify.setEnabled(true);
                } else {
                    checkboxnotify.setEnabled(false);
                    checkboxnotify.setChecked(false);
                }
            }

            public void onNothingSelected(AdapterView parent) {
            }
        });

报错中可以看到:setOnItemClickListener不能使用

使用

setOnItemSelectedListener

而不是

setOnItemClickListener

首先你应该改变这个。然后你可以使用 position.

你应该使用 OnItemSelectedListener https://developer.android.com/guide/topics/ui/controls/spinner#SelectListener