完成进度后如何更改进度对话框的布局?

时间:2019-01-19 11:29:59

标签: android layout progressdialog

我的AsyncTask扩展类中有一个进度对话框。 我已经使用setcontentview()将布局设置为进度对话框。 我想更改进度对话框的设计,并在完成时显示2秒钟(即在PostExecute()中)。

我在onPreexecute()中启动“进度”对话框,然后在onPostexecute()方法中将其关闭。

这是我在onPreexecute中初始化进度对话框的方式

progressDialog = ProgressDialog.show(context, null, null);
progressDialog.setContentView(R.layout.progress_meditate);
progressDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
progressDialog.setProgressDrawable(new ColorDrawable(Color.WHITE));

我尝试了onPostExecute中的以下代码

progressDialog.setContentView(R.layout.progress_complete);
sleep(2000);
progressDialog.dismiss();

,但是它不起作用。我的progress_complete布局未显示。具有相同设计的睡眠时间结束后,进度对话框将被关闭。

4 个答案:

答案 0 :(得分:0)

01。第一步,初始化progressBar和ProgressBarText

 private ProgressBar progressBar;
 private TextView progressBarText;

02。第二步,声明此OnCreate方法

  progressBar.setVisibility(View.VISIBLE);
  progressBarText.setVisibility(View.VISIBLE);

03。第三步,声明此onPostExecute方法

  progressBar.setVisibility(View.GONE);
  progressBarText.setVisibility(View.GONE);

就是这样。我认为这对您有帮助。

答案 1 :(得分:0)

为此,您不能在运行时更改设计。在执行后显示具有不同设计的对话框的唯一可能方法是  创建一个新对话框并关闭上一个对话框并显示新对话框。

答案 2 :(得分:0)

不太简单的解决方案是扩展或创建自己的ProgressDialog。 另一方面,您可以在Android文档中找到following

  

警告:Android包含另一个名为 ProgressDialog 的对话框类,该对话框类显示带有进度条的对话框。 已弃用该小部件,因为它可防止用户在显示进度时与应用进行交互。如果需要指示加载进度或不确定进度,则应遵循“进度和活动”的设计准则,并在布局中使用ProgressBar,而不要使用ProgressDialog。

我将建议/建议转移到ProgressBar作为解决方案的起点,但这是您的要求。

我认为解决您的问题会更容易,因为ProgressBar只是另一个可以完全重叠的视图。

答案 3 :(得分:0)

然后创建两个进度对话框,一个在另一个对话框上,先关闭一个对话框,然后在2秒钟后关闭另一个对话框。会起作用