我是Android的新手,并且正在做编码来满足我的各种需求。
我有一个奇怪的问题,我需要显示进度对话框来掩盖我从 Facebook 下载图像的背景工作,并在我将它们放入矢量对象后在 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();
}
}
});
}
所以我记录了进度对话框的开始和结束,并期望对话框显示。 但事实并非如此。 有人可以解释为什么吗?
我也使用了一个runOnUiThread()线程,但它也产生了相同的结果。
定义进度对话框的方法不正确。像这样尝试
pdialog =new ProgressDialog(mContext);
pdialog.setMessage("Your message");
pdialog.show();
这里是您的活动上下文mContext
并使用pdialog.dismiss();
将其关闭
当你的任务完成时,你应该使用 pdialog.dismiss()。对于此问题,您应该使用 AsyncTask 类。更多信息请阅读此图特。