0

下面是我的代码:工作正常,但对话框不显示。对话框应该在 ASyncTask 开始时打开并在结束时关闭。怎么可能呢?


    Public class RootClass
    {
    public ProgressDialog dialog;
    public List methodA(String a)
    ----
    ----

Class childClass extends AsyncTask<Void,Void,Void> { @Override protected void onPreExecute() { dialog = ProgressDialog.show(RootClass.this,"Please wait", "Message"); } @Override protected Void doInBackground(Void... params) { ---- --- --- List<String> B=methodA(String a); ----- ----- } @Override protected void onPostExecute(Void result) { dialog.dismiss(); return; } } }</pre>
4

3 回答 3

0

在 onCreate 方法中。在您要开始异步任务写入的事件中

dialog = ProgressDialog.show(RootClass.this,"Please wait", "Message");

您无法在 doiin backgroung() 方法中更新 ui,,

以及后来的 PostExecute()、dialog.dissmiss;。

于 2012-09-06T07:49:41.567 回答
0

你的 RootClass 应该扩展 Activity 类

 public class RootClass extends Activity
于 2012-09-06T07:44:40.540 回答
-1

而不是使用 -public ProgressDialog dialog;

尝试使用——public Dialog process;

并在异步任务中使用此代码

protected void onPreExecute() 
{
progress = ProgressDialog.show(YourActivity.this, "Please wait",
                "Loading..", true);
}

protected void onPostExecute(String result) {
super.onPostExecute(result);
if (progress.isShowing()) {
progress.dismiss();
}

希望这可以帮助!

于 2012-09-06T08:52:17.380 回答