0

我的片段中有一个链接,显示“单击以打开对话框”,单击它后,会弹出一个警告对话框,显示“您要更改视图吗?” 带有是和否符号。如果我单击“否”,则不会发生任何事情,并且对话框会按预期消失。但是,如果我单击“是”,如何调用函数来刷新我的视图,直到刷新我的视图才会显示进度对话框?到目前为止,这是我的代码,我不知道在哪里关闭进度对话框或确保刷新视图,有什么线索吗?:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("Are you sure you want to refresh your view?");
        builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                //refreshview here ? 

                ProgressDialog progressDialog = ProgressDialog.show(getActivity(), "",
                        "Loading. Please wait...", true);
                progressDialog.show();

                progressDialog.setCancelable(false);
                progressDialog.setCanceledOnTouchOutside(false);
            }
        });
        builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                dialog.dismiss();
            }
        });
        AlertDialog dialog = builder.create();
        dialog.show();
4

2 回答 2

1

最好在AsyncTask这里使用并onPostExecute(...)解雇你的Progress Dialog

看看演示

  1. 官方网站
  2. 例子

一旦你得到数据刷新你ViewonPostExecute(...)

编辑:

 //Progress Dialog Show logic here
 Runnable r=new Runnable() {
        @Override
        public void run() {
            //Dismiss the Dialog and refresh your Views
        }
    };

    new Handler().postDelayed(r,10*1000);

此代码在 10 秒后执行。

于 2016-03-04T14:35:02.157 回答
0

如果您不在新线程上执行任何操作,则不需要处理程序。只需调用如下方法:

private void updateView(ProgressDialog dialog){
   //UPDATE
   if(dialog != null){
     dialog.dismiss();
   } 
}
于 2016-03-04T15:09:35.463 回答