我的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布局未显示。具有相同设计的睡眠时间结束后,进度对话框将被关闭。
答案 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秒钟后关闭另一个对话框。会起作用