我是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()线程,但它也产生了相同的结果。
答案 0 :(得分:3)
您定义进度对话框的方法不正确。试试这个
pdialog =new ProgressDialog(mContext);
pdialog.setMessage("Your message");
pdialog.show();
此处mContext
是您活动的背景
并使用pdialog.dismiss();
来解雇它
答案 1 :(得分:0)
你应该使用pdialog.dismiss();当你的任务完成时。对于这个问题,你应该使用AsyncTask类。更多信息Read This Tut.