无法访问 inner class 内的变量,但我需要更改变量,所以我也不能将其声明为 final
Can't access a variable within inner class, but I need to change the variable, so I can't declare it final either
View.OnClickListener handleOnClick(ToggleButton mButton, boolean mBoolean) {
return new View.OnClickListener() {
public void onClick(View v) {
mBoolean = !mBoolean;
updateUi(mButton, mBoolean);
}
};
}
mBoolean 和 mButton "is accessed from within inner class, needs to be declared final"
但是当我这样做时,我不能执行 mBoolean =!mBoolean,因为它说我不能更改最终变量。
只需将 mBoolean 作为它的反义词传递即可 updateUi(mButton, !mBoolean);
如果您需要从 lisneter 更改外部变量的值 - 使用最终数组而不是原始数组。
View.OnClickListener handleOnClick(ToggleButton mButton, boolean mBoolean) {
return new View.OnClickListener() {
public void onClick(View v) {
mBoolean = !mBoolean;
updateUi(mButton, mBoolean);
}
};
}
mBoolean 和 mButton "is accessed from within inner class, needs to be declared final"
但是当我这样做时,我不能执行 mBoolean =!mBoolean,因为它说我不能更改最终变量。
只需将 mBoolean 作为它的反义词传递即可 updateUi(mButton, !mBoolean);
如果您需要从 lisneter 更改外部变量的值 - 使用最终数组而不是原始数组。