1

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

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

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 is not applicable for the arguments”的原因

这告诉我要导入这个

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;

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

4

1 回答 1

6

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

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

接着

howHotRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() ...
friendlyCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() ...
于 2014-05-19T00:27:51.957 回答