如何在不使用线程和处理程序的情况下使用Progressbar?

问题描述

| 如何在不使用线程和处理程序的情况下使用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>
谢谢 迪帕克