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