无法访问 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 更改外部变量的值 - 使用最终数组而不是原始数组。