我试图使用一个循环来设置单击时每个按钮的动作(因为大多数按钮只会返回它们的文本值),但是我得到一个错误,声明“变量’我是从内部类中访问的,需要被宣布为最终“.我怎么能绕过这个?
这是我得到的
- 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;
- }
解决方法
您可以将i的值复制到临时最终变量中 –
- 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
- }
- }
- });
- }