Java 中外部类的访问变量

在Java Android应用程序中,我如何从内部匿名类访问外部类的变量?例:

    ProgressDialog dialog = new ProgressDialog(this);
    .....
    send.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) {

           //here i'd like to do something with **dialog** variable
           .......

        }
    });

答案 1

如果对话框变量是外部类的字段,则可以使用带有外部类名前缀的前缀(限定的 this):this

send.setOnClickListener(new View.OnClickListener() 
{
    public void onClick(View v) {
       ProgressDialog dlg = OuterClass.this.dialog;
       .......
    }
});

或者,如果 diliog 变量是局部变量,则需要将其标记为 final:

final ProgressDialog dialog = new ProgressDialog(this);
.....
send.setOnClickListener(new View.OnClickListener() 
{
    public void onClick(View v) {
       // The dialog variable is in scope here ...
       dialog.someMethod();
    }
});

答案 2

创建外部局部变量 (),以便可以从内部类引用它。dialogfinal


推荐