Конфликт OnCheckedChangeListener с checkBox и radioGroup

Я работаю над онлайн-учебником по созданию калькулятора чаевых. В видео парень показывает, как создать встроенный прослушиватель кликов. Я пытаюсь создать прослушиватели кликов для флажка и радиогруппы. Однако, кажется, есть конфликт, который я не могу разрешить.

Вот настройка прослушивателя смены флажка.

friendlyCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener(){

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {

            checklistValues[0] = (friendlyCheckBox.isChecked())?4:0;

            setTipFromWaitressChecklist();
            updateTipFinalBill();

        }

    });

а вот настройка для слушателя смены RadioGroup..

howHotRadioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        public void onCheckedChanged(RadioGroup group, int checkedId) {


        }


    });

Я получаю эту ошибку с прослушивателем изменения radioGroup

The method setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener) in the type RadioGroup is not applicable for the arguments (new CompoundButton.OnCheckedChangeListener(){})

Проведя некоторое исследование, я пришел к этой теме. для получения RadioGroup неприменимо для аргументов

Что говорит мне импортировать это

import android.widget.RadioGroup.OnCheckedChangeListener;

Когда я импортирую это, я получаю эту ошибку

import android.widget.RadioGroup.OnCheckedChangeListener collides with another import statement

Я считаю, что это два конфликтующих импорта, но когда я заменяю один другим, моя ошибка просто перемещается из моего флажка в мою радиогруппу.

import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.RadioGroup.OnCheckedChangeListener;

Кто-нибудь знает, как это решить?


person Jsin    schedule 19.05.2014    source источник


Ответы (1)


Не импортируйте ни один из них, только соответствующие внешние классы, а затем используйте имя внутреннего класса при создании анонимного слушателя, т.е.

import android.widget.CompoundButton;
import android.widget.RadioGroup;

а потом

howHotRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() ...
friendlyCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() ...
person matiash    schedule 19.05.2014
comment
Круто... спас мой день... ;-) - person Harsh Patel; 03.11.2015