在Java for Android中点击外部自定义对话框时,OnDiskMissListener和OnCancelListener未执行
我有一个自定义对话框,当用户退出该对话框时,主活动将通过使用start activity刷新。到目前为止,情况并非如此,因为对话框关闭时没有任何一个侦听器执行。当按下后退按钮以及关闭屏幕上的对话框时,会发生这种情况在Java for Android中点击外部自定义对话框时,OnDiskMissListener和OnCancelListener未执行,java,android,dialog,Java,Android,Dialog,我有一个自定义对话框,当用户退出该对话框时,主活动将通过使用start activity刷新。到目前为止,情况并非如此,因为对话框关闭时没有任何一个侦听器执行。当按下后退按钮以及关闭屏幕上的对话框时,会发生这种情况 public class CustomDialogClass extends Dialog implements android.view.View.OnClickListener { public Activity mActivity; public CustomDi
public class CustomDialogClass extends Dialog implements
android.view.View.OnClickListener {
public Activity mActivity;
public CustomDialogClass(Activity activity) {
super(activity);
this.mActivity = activity;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.custom_dialog);
setCanceledOnTouchOutside(true);
new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
// TODO Auto-generated method stub
Log.e("check", "STARTED_dismiss");
Intent i = new Intent(mActivity, MainActivity.class);
mActivity.startActivity(i);
}
};
new OnCancelListener(){
@Override
public void onCancel(DialogInterface dialog) {
// TODO Auto-generated method stub
Log.e("check", "STARTED_Cancel");
Intent i = new Intent(mActivity, MainActivity.class);
mActivity.startActivity(i);
}
};
}
您必须设置侦听器,为此只需在onCreate方法中调用setOnDismissListener和setOnCancelListener方法。像这样:
setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
// your code here
}
});
setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// your code here
}
});
您可以创建匿名侦听器。你需要处理好你的听众。 这样做:
OnDismissListener onDismissListener = new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
// TODO Auto-generated method stub
Log.e("check", "STARTED_dismiss");
Intent i = new Intent(mActivity, MainActivity.class);
mActivity.startActivity(i);
}
};
OnCancelListener onCancelListener = new OnCancelListener(){
@Override
public void onCancel(DialogInterface dialog) {
// TODO Auto-generated method stub
Log.e("check", "STARTED_Cancel");
Intent i = new Intent(mActivity, MainActivity.class);
mActivity.startActivity(i);
}
};
然后将侦听器添加到对象:
myObject.setOnDismissListener(onDismissListener);
myObject.setOnCancelListener(onCancelListener);
但是,在哪里设置对话框的侦听器呢?我可以看到,您只是创建匿名对象侦听器,但不使用它们。