我正在通过一个建立小费计算器的在线教程。在视频中,该人展示了如何构建内联点击监听器。我正在尝试为复选框和广播组构建单击侦听器。但是,似乎存在一个我无法解决的冲突。
以下是复选框更改侦听器的设置..
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;
有谁知道如何解决这个问题?
答案 0 :(得分:6)
不要导入其中任何一个,只是相应的外部类,然后在创建匿名监听器时使用内部类名,即
import android.widget.CompoundButton;
import android.widget.RadioGroup;
然后
howHotRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() ...
friendlyCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() ...