我正在研究构建小费计算器的在线教程。在视频中,该家伙展示了如何构建内嵌点击监听器。我正在尝试为复选框和单选组构建单击侦听器。但是,似乎有一个冲突无法解决。

这是复选框更改侦听器的设置。

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


经过研究后,我来到了这个线程。

告诉我要导入

import android.widget.RadioGroup.OnCheckedChangeListener;


当我导入时,出现此错误

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


我相信这是两个相互冲突的导入,但是当我用另一个导入替换时,我的错误只是从复选框移至radioGroup。

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


有谁知道如何解决这个问题?

最佳答案

在创建匿名侦听器时,不要导入任何一个,只导入相应的外部类,然后使用内部类名称。

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


接着

howHotRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() ...
friendlyCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() ...

关于android - OnCheckedChangeListener与checkBox vs radioGroup冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23728045/

10-12 06:27