use*_*620 15 java anonymous-inner-class local-variables
在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
.......
}
});
Run Code Online (Sandbox Code Playgroud)
Ric*_*lly 25
如果对话框变量是外部类的字段,则可以使用this带外部类名称的前缀(限定为此):
send.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
ProgressDialog dlg = OuterClass.this.dialog;
.......
}
});
Run Code Online (Sandbox Code Playgroud)
或者,如果dialiog变量是局部变量,则需要将其标记为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();
}
});
Run Code Online (Sandbox Code Playgroud)