为什么ProgressDialog在运行时没有显示出来?

时间:2012-10-01 13:00:31

标签: android json android-widget

我是Android的新手,并且正在进行编码以满足我的各种需求。

我有一个奇怪的问题,我需要显示进度对话框以掩盖我从Facebook下载图像的后台工作,并在我将它们放入Vector对象后在ListView中显示它们。

我的代码就像这样:

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

        facebook.authorize(this, new String[] { "email", "publish_checkins",
                "user_photos" },

        //new Dialog Listner code

        btnAlb = (Button) findViewById(R.id.btnAlb);
        logout = (Button) findViewById(R.id.logout);

        btnAlb.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {


    //**            Log.i("pDialog","Entry");
        pdialog = ProgressDialog.show(MainActivity.this, "Processing Data","Loading..");
    //this is not working !!
    //**            Log.i("pDialog","Exit");

                try {

    //Lot of JSON Parsing
                    pdialog.dismiss();

                    Intent intent = new Intent(MainActivity.this,AlbumHolder.class);

                    startActivity(intent);

                } catch (Exception e) {
                    e.printStackTrace();
                    pdialog.dismiss();
                }


            }
        });

}

所以我记录了ProgressDialog的开始和结束,并期望显示对话框。但事实并非如此。有人能解释一下原因吗?

我还使用了runOnUiThread()线程,但它也产生了相同的结果。

2 个答案:

答案 0 :(得分:3)

您定义进度对话框的方法不正确。试试这个

 pdialog =new ProgressDialog(mContext);
 pdialog.setMessage("Your message");
 pdialog.show();

此处mContext是您活动的背景 并使用pdialog.dismiss();来解雇它

答案 1 :(得分:0)

你应该使用pdialog.dismiss();当你的任务完成时。对于这个问题,你应该使用AsyncTask类。更多信息Read This Tut.