boolean buttonflag=false;
        Editbutton.setOnClickListener( new OnClickListener()
        {


            @Override
            public void onClick( View v )
            {
               buttonflag=true;

             }
        }


我收到的错误是“无法在用不同方法定义的内部类中引用非最终变量buttonflag”,我要做的是当我按下Editbutton时我希望buttonflag为true。.任何人都可以解释原因并解决此问题?

最佳答案

错误消息非常简单。由于buttonflag不是最终的,因此您无法在OnClickListener匿名类中访问它。两种可能的解决方案


将buttonflag设为字段
使其最终。但是,您无法对其进行修改,因此必须选择一维数组方法,从而导致

final boolean[] buttonflag=new boolean[]{false};
Editbutton.setOnClickListener( new OnClickListener(){
   @Override
   public void onClick( View v ){
     buttonflag[0]=true;
   }
}

10-06 01:17