我在android-widget-switch-on-off-event-listener的答案中尝试了代码,但该帖子没有说明我尝试使用它的错误。
在建议代码的第二行:
switch1 = (Switch) findViewById(R.id.switch1);
switch1.setOnCheckedChangeListener(new OnCheckedChangedListener() { //This line has the error
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
aTextView.setText("Switch was toggled");
}
});
此错误触发
CompoundButton类型中的方法setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener)不适用于参数(new OnCheckedChangedListener(){})
我该如何解决这个问题?我想要做的就是在开关改变时调用一个函数 - 而不是单击它时。感谢。
答案 0 :(得分:6)
将监听器设置为 this ,因为您的类实现了复合按钮,就像这样......
switch1.setOnCheckedChangeListener(this);
然后在您的代码中添加此方法...
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
boolean = isChecked;
//whatever you want
}
编辑:如果你没有实现 CompoundButton.OnCheckedChangedListener ,请使用此...
switch.setOnCheckedChangeListener(new OnCheckedChangeListener(
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
}
});
答案 1 :(得分:0)
您好,请查看http://custom-android-dn.blogspot.in/2013/01/how-to-use-and-custom-switch-in-android.html
我们可以用给定的方式做到这一点
switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if (buttonView.isChecked()){
//do something }
else{
//do something
}
}
});