完成对话框类中的活动

时间:2014-03-18 11:08:30

标签: android dialog activity-finish

MainActivity我致电

 myDialog dialog = new myDialog(MainActivity.this);
 dialog.show();

myDialog是我自己的类,我自定义对话框。 在对话框中是一个按钮。我希望按下按钮时MainActivity和对话框完成/消失,因为我启动了另一个Activity。 我如何在myDialog课程onClickListener中说MainActivity应该finish()

我的对话框的缩短代码:

public class myDialog extends Dialog implements OnClickListener {

    void onClick() {
        Intent menu = new Intent(getContext(), menu.class);
        getContext().startActivity(menu);
    }
}

2 个答案:

答案 0 :(得分:21)

您可以完成以下活动......

Intent intent = new Intent(context, YourSecondActivity.class);
context.startActivity(intent);
((Activity) context).finish();

<强>更新

在自定义对话框类的构造函数中,获取以下活动上下文...

Context mContext;

public myDialog(Context context) {
    super(context);
    this.mContext = context;
}

然后在您的onClick()方法中完成以下活动......

@Override
public void onClick(View v) {

    Intent menu = new Intent(mContext, menu.class);
    mContext.startActivity(menu);
    ((Activity) mContext).finish();
}

答案 1 :(得分:6)

首先在对话框类中传递调用者活动的上下文,例如MainActivit.class context

现在先关闭对话框

//so as to avoid the window leaks as on destroying the activity it's context would also get vanished.
    dialog.dismiss();

然后

((Activity) context).finish();