0

这是一个 + 和 - 按钮的 for 循环,它在单击后更改 edittext et[] 中的文本,存在需要将变量 x 声明为 final 但一旦将 x 声明为 final,for 循环中的 x++显示另一个错误,需要在没有 final 的情况下对 x 进行 declade,我该怎么做才能在 onClick 中使用变量 x?

          for(int x=0; x<itemAmt; x++){
        btn[0][x].setOnClickListener(new Button.OnClickListener(){
            public void onClick(View v) {

                int num=Integer.parseInt(et[x].getText().toString());
                num++;

            }

        });

        btn[1][x].setOnClickListener(new Button.OnClickListener(){
            public void onClick(View v) {

                int num=Integer.parseInt(et[x].getText().toString());
                num--;

            }

        });
        }
4

1 回答 1

3

作为简单的工作,您可以在循环final内声明一个变量并赋值forx

 for(int x=0; x<itemAmt; x++){
    final int myX = x;
    btn[0][x].setOnClickListener(new Button.OnClickListener(){
        public void onClick(View v) {

            int num=Integer.parseInt(et[myX].getText().toString());
            num++;

        }

    });

    btn[1][x].setOnClickListener(new Button.OnClickListener(){
        public void onClick(View v) {

            int num=Integer.parseInt(et[myX].getText().toString());
            num--;

        }

    });
    }
于 2013-04-08T14:43:44.870 回答