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
.......
}
});
答案 0 :(得分:23)
如果对话框变量是外部类的字段,则可以使用前缀为外部类名a qualified this)的this
:
send.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
ProgressDialog dlg = OuterClass.this.dialog;
.......
}
});
或者,如果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();
}
});
答案 1 :(得分:5)
创建外部局部变量(dialog
)final
,以便您可以从内部类中引用它。
答案 2 :(得分:1)
如果它是局部变量(如签名所示),则内部类需要final
才能访问它。如果它是成员变量,则可见性修饰符必须是默认值(无修饰符)或更高(受保护或公共)。使用private
- 修饰符,它仍然有效,但您可能会收到警告(取决于您的编译器设置):
对封闭字段的读访问权SomeClass.someField由a模拟 合成访问方法