问题描述
|
如何在不使用线程和处理程序的情况下使用Progressbar?
我用下面的代码,但这不起作用。
ProgressDialog prd =新的ProgressDialog(this);
prd.setTitle(\“请稍候..... \”);
prd.show();
解决方法
private class SomeTask extends AsyncTask {
private ProgressDialog dialog = new ProgressDialog(SomeActivity.this);
@Override
protected void onPreExecute() {
this.dialog.setMessage(getResources().getString(R.string.someMessage));
this.dialog.show();
}
@Override
protected List<Object> doInBackground(Object... objects) {
....
try {
// some logic here
} catch (Exception e) {
e.printStackTrace();
if (this.dialog.isShowing()) this.dialog.dismiss();
}
return list;
}
@Override
protected void onPostExecute(Object result) {
if (this.dialog.isShowing()) this.dialog.dismiss();
}
}
,“进度”对话框始终用于显示在显示“进度”对话框时正在进行的某些后台任务。没有这个,就没有进度对话框的目的。
但是,您可以使用AsyncTask类代替线程和处理程序,以在android中显示进度对话框。
请参见AsyncTask类。
,进度栏和进度对话框不同。
您也可以通过xml创建进度条。请参见以下代码以显示进度条
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<RelativeLayout
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:id=\"@+id/FIL_Main_RelativeLayout\"
android:background=\"#ffffff\">
<ProgressBar
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_centerInParent=\"true\"
style=\"@android:style/Widget.ProgressBar.Inverse\"
android:id=\"@+id/FIL_Middle_ProgressBar\"></ProgressBar>
</RelativeLayout>
谢谢
迪帕克