自定义对话框 - 登录 - 我想要“模态”进度条

时间:2011-04-12 18:54:46

标签: android

我在我的应用程序中有登录的自定义对话框。我还为它添加了进度条并使其无形。当用户点击“按钮”时,我调用AsyncTask来处理http登录。我从AsyncTask控制进度条。一切看起来都不错,但是当AsyncTask运行时 - 对话框完全响应。我可以更改字段,我可以单击按钮等。我看到3个选项:

  1. 在运行asynctask之前,我将禁用所有控件。但是我怎么知道什么时候完成?我可以使用回调吗?

  2. 创建登录窗口活动并显示进度对话框。

  3. 请告诉我处理此方案的正确方法

    这里是异步任务。我试图让它通用,我传递url和body并返回http响应:

    private class RESTService extends AsyncTask<String, Integer, String>
        {
            //TODO: Add text to progress bar and add custom artwork
            ProgressBar progress;
            Dialog dialog;
            Activity activity;
    
            public RESTService(ProgressBar p, Dialog d, Activity a)
            {
                progress = p;
            }
            @Override
            protected String doInBackground(String... stuff)
            {
                String url = stuff[0];
                String post = stuff[1];
    
                try
                {
                    Thread.sleep(15000);
                } catch (InterruptedException e)
                {
                    e.printStackTrace();
                }
    
                return "done";
            }
    
            @Override
            protected void onPreExecute()
            {
                super.onPreExecute();
    
                if (dialog != null)
                {
    
                }
    
                if (progress != null)
                {
                    progress.setVisibility(View.VISIBLE);
    
                }
            }
    
            @Override
            protected void onPostExecute(String s)
            {
                super.onPostExecute(s);
    
                if (progress != null)
                {
                    progress.setVisibility(View.GONE);
                }
            }
        }
    

1 个答案:

答案 0 :(得分:0)

我最终做了什么 - 弹出AlertDialog,为AsyncTask侦听器创建接口,并在任务完成时调用父调用者。