Android 在对话框类中完成活动

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/22477551/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-20 06:02:16  来源:igfitidea点击:

Finish activity in dialog class

androiddialogactivity-finish

提问by L3n95

In my MainActivityI call

在我MainActivity我叫

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

myDialogis my own class where I customize the dialog. In the dialog is a button. I want that the MainActivityand the dialog finishes/dissappears when the button is pressed, because I start another Activity then. How can I say in the myDialogclass, in the onClickListener, that the MainActivityshould finish()?

myDialog是我自己的课程,我可以在其中自定义对话框。在对话框中有一个按钮。我希望MainActivity当按下按钮时,对话框结束/消失,因为然后我启动了另一个活动。我怎么能在myDialog课堂上说,在onClickListenerMainActivity应该finish()

Shortened code of my dialog:

我的对话框的缩短代码:

public class myDialog extends Dialog implements OnClickListener {

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

回答by Hamid Shatu

You can finish your Activity as below...

您可以按如下方式完成您的活动...

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

Update:

更新:

In your constructor of you custom dialog class, get the activity context as below...

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

Context mContext;

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

then in your onClick()method finish the activity as below...

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

@Override
public void onClick(View v) {

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

回答by Arpit Garg

Firstly in your dialog class pass the context of the caller activities say MainActivit.class context

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

Now first close the dialog

现在首先关闭对话框

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

and then

进而

((Activity) context).finish();