OnCheckedChangeListener与checkBox vs radioGroup冲突

时间:2014-05-19 00:01:13

标签: android android-checkbox android-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(){})

在做了一些研究后,我来到了这个帖子.. Reasons for receiving "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;

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

1 个答案:

答案 0 :(得分:6)

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

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

然后

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