android-fragments 使用片段管理器消除对话片段

eimct9ow  于 2022-11-13  发布在  Android
关注(0)|答案(2)|浏览(200)

我正在显示一个DialogFragment和onClickOK事件,AsyncTask已启动。当AsyncTask运行时,我将显示ProgressBar。AsyncTask可能以失败或失败结束。当它以成功结束时,我希望关闭FragmentDialog。如何使用FragmentManager(?)执行此操作?我使用void show (FragmentManager manager, String tag)显示它。
P.S.是否有任何理由关闭一个FragmentDialog onClickOK,并(也许)在完成AsyncTask时显示它?

5hcedyr0

5hcedyr01#

如果使用AsyncTask,则可以在执行后方法上取消对话框引用,并在执行前方法上启动它

@Override
protected void onPreExecute() {
    super.onPreExecute();
    dialogo = ProgressDialog.show.....

@Override
protected void onPostExecute() {
        if (dialogo != null && dialogo.isShowing())
            dialogo.dismiss();
cyvaqqii

cyvaqqii2#

您可以通过使用用于显示它的同一标记来找到它,然后关闭它。

Fragment fragment = yourFragmentManager.findFragmentByTag("dialog_tag");
if (fragment != null) {
    DialogFragment dialogFragment = (DialogFragment) fragment;
    dialogFragment.dismiss();
}

相关问题