这是我在android编程中使用的代码

EditText pass1,pass2;
Button register=(Button) findViewById(R.id.register);
register.setOnCllickListener(new OnClickListener(){
public void onClick(View v)
{
 passq=(EditText) findViewById(R.id.password_fill);
}
});


但是我总是会出错:

Cannot refer to non-final variable inside an inner class defined in different method.


即使在将pass1声明为final之后,仍然出现以下错误:

The final local variable pass1 cannot be assigned since it is defined in an enclosing type.


但是为什么会出现此错误,我该如何删除呢?我已经遇到过很多次了。

最佳答案

您必须全局声明编辑文本。这样做的原因是在您的活动类中,有一个名为“ onCreate”的方法,在该方法中,您声明了编辑文本“ pass1”,并试图通过另一个预定义的方法“ setOnClickListener”进行定义。这不可能。因此,您必须全局或最终声明它。

09-26 16:05