我试图在函数中包装switchbutton
并根据开关返回的值是checked
/ unchecked
,但是由于Java设计的限制,我必须声明字符串最后,我不希望返回值是最终值,因为它会根据选择而改变
下面是我的代码
protected String getSwitchValue(Switch sw){
String ReturnValue; // Issue in accessing the variable in inner class
sw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
//String ReturnValue;
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
ReturnValue = "Yes"; // throws error here
}else {
ReturnValue = "No"; // throws error here
}
}
});
return ReturnValue;
}
答案 0 :(得分:0)
您是对的,您不能以这种方式这样做。无需像下面这样的setOnCheckedChangeListener()
,就可以实现这一目标。
protected String getSwitchValue(Switch sw) {
if (sw.isChecked()) {
return "YES";
} else {
return "NO";
}
}
答案 1 :(得分:0)
您的“ getSwitchValue”方法似乎要获取当前开关按钮状态?如果是这样,则要使用“ Switch.isChecked()”代替侦听器。
OnCheckedChangeListener是您想要在更改开关按钮的选中状态时触发一些事件处理的需求。不是当您想获取当前状态时。