首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >进度对话框后面的对话

进度对话框后面的对话
EN

Stack Overflow用户
提问于 2013-12-19 14:19:22
回答 2查看 614关注 0票数 0

我已经创建了一个对话框,它用信息.But更新了xml,在弹出.How的对话框后面显示了进度对话框,我用膨胀的xml显示了对话框顶部的进度对话框。

代码语言:javascript
复制
public class MainActivity extends Activity {

     protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);


           dialog();
        }


        public class loadasync extends AsyncTask<Void, Void, JSONObject> {

            ProgressDialog progressDialog ;
            @Override
            protected JSONObject doInBackground(Void... params) {
                    }
            @Override
            protected void onPreExecute() {
                // TODO Auto-generated method stub

                super.onPreExecute();
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                          progressDialog = new ProgressDialog(MainActivity.this);
                        progressDialog.setMessage("loading");
                        progressDialog.setCanceledOnTouchOutside(false);
                        progressDialog.show();
                    }
                });         
            }

            @Override
            protected void onPostExecute(JSONObject result) {


                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {


                         progressDialog.dismiss();   
                    }       
                });
            }
        }   



        public void dialog() {

            dialog = new Dialog(MainActivity.this);
             dialog.setContentView(R.layout.dialogxml);

        loadasync loadasyncdata=new loadasync();
        loadasyncdata.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);


            dialog.show();


        }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-19 14:39:03

我看不到您在代码中使用的是setProgressStyle()。这就是:

代码语言:javascript
复制
 progessDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);

例如。

因此,在您的代码中,请尝试以下操作:

代码语言:javascript
复制
 public void run() {
                    progressDialog = new ProgressDialog(MainActivity.this);
                    progressDialog.setMessage("loading");
                    progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
                    progressDialog.setCanceledOnTouchOutside(false);
                    progressDialog.show();
                }
票数 1
EN

Stack Overflow用户

发布于 2013-12-19 15:33:45

需要考虑的是: OnPostExecute和onPreExecute都在UI线程上运行,所以您可以删除runOnUIThread内容,只需执行以下操作

代码语言:javascript
复制
        protected void onPreExecute() {
          progressDialog = new ProgressDialog(MainActivity.this);
          progressDialog.setMessage("loading");
          progressDialog.setCanceledOnTouchOutside(false);
          progressDialog.show();
        }

和分别在onPostExecute中

代码语言:javascript
复制
       protected void onPostExecute(JSONObject result) {
          progressDialog.dismiss();   
        }

也许应该是个评论但是名声..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20684055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档