在Android程序中, 我们经常需要在一个Activity中注册一个按钮的listener, 常见的方式都是如下, 自己定义一个OnClickListener的匿名子类, 并且重载onClick()方法.
mConfirmation.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//something here
AlertDialog.Builder builder=new AlertDialog.Builder(CreateProfileActivity.this);
}
}
});
假设像上面的例子,我们完成一些任务之后 需要一个对话框和用户交互, 比如问用户"是否确定删除该信息?", 此时我们在创建AlertDialog.Builer实例时需要传递进去context的实例, 通常如果在activity中我们会直接写this. 但是此处却只能通过
CreateProfileActivity.this
这种方式来得到reference, 我对这个也表示很疑惑, 万一有多个CreateProfileActivity的实例, 那么this指向哪个. 但是事实是这可能是Java中约定俗成的写法. Just accept it.