进入内部onClick(View view)
的背景下,一个按钮的onClickListener()
回调,很简单:
view.getContext()
但我无法弄清楚如何获得上下文内onClick(DialogInterface v, int buttonId)
,回调的对话框的onClickListener
public class MainActivity extends Activity implements android.content.DialogInterface.OnClickListener
这可能吗?
当你定义DialogInterface.OnClickListener
作为一个匿名类,你可以参考的外部环境。如果您在活动中是可以使用MyActivity.this
作为背景。
编辑 - 因为你的活动正在实施DialogInterface.OnClickListener
,你应该能够只使用this
作为背景。
如果您DialogInterface是MainActivity内,那么你可以使用获取上下文
MainActivity.this.getActivityContext();
顺便说一句,您还可以实现DialogInterface(您的代码示例中,您已经编写工具两次)和相同的语句可用于获取活动场景。
这里是你的情况下,做到这一点,你
只需简单,
dialogInterface
对象,并投它Dialog
对象getContext()
例如用DialogInterface.OnClickListener:
DialogInterface.OnClickListener foo = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
Dialog dialog = (Dialog) dialogInterface;
Context context = dialog.getContext();
// do some work with context
}
};
这也将在以下接口以及工作,只使用第一个参数DialogInterface dialogInterface
和演员。
里面setOnClickListener
decelare这个类下面
Context context = this;
并使用此背景下
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);