使用循环设置按钮onclicklistener

mr *_*oob 6 android onclick button onclicklistener

我试图使用一个循环来设置每个按钮单击时的动作(因为大多数按钮只会返回它们的文本值),但是我收到一个错误,指出"变量'i'是从内部类中访问的,需要的被宣布为最终".我怎么能绕过这个?

这就是我得到的

String getValuesPressed(){

    for(int i = 0; i < buttonList.length; i++){

        buttonList[i].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(i == 0){//error occurs here
                    //do stuff
                }

            }
        });
    }
    return textOnScreen;
}
Run Code Online (Sandbox Code Playgroud)

San*_*t A 9

您可以将iin 的值复制到temp final变量中 -

for (int i = 0; i < buttonList.length; i++) {
        final int finalI = i;
        buttonList[i].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (finalI == 0) {//error occurs here
                    //do stuff
                }
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)