Jay Kundaliya
Jay Kundaliya

Reputation: 25

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) {
            }
        });

Upvotes: 0

Views: 1200

Answers (3)

Kasım &#214;zdemir
Kasım &#214;zdemir

Reputation: 5634

You can see in the error: setOnItemClickListener cannot be used

Use

setOnItemSelectedListener

instead of

setOnItemClickListener

Firstly you should change this. Then you can use position.

Upvotes: 1

ventura8
ventura8

Reputation: 554

You should use OnItemSelectedListener https://developer.android.com/guide/topics/ui/controls/spinner#SelectListener

Upvotes: 0

Mehul Kabaria
Mehul Kabaria

Reputation: 6622

You have to use a position in place of id while you want to compare the position of the selected item in the spinner.

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) {
            }
        });

Upvotes: 0

Related Questions