如何使用进度条而不使用线程和处理程序?

时间:2011-05-25 09:52:48

标签: android

如何在不使用线程和处理程序的情况下使用Progressbar? 我使用了以下代码,但这不起作用。

ProgressDialog prd=new ProgressDialog(this);
prd.setTitle("Please Wait........");
prd.show();

3 个答案:

答案 0 :(得分:2)

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();
}

}

答案 1 :(得分:0)

进度对话框始终用于显示在显示prgress对话框时有一些后台任务正在进行。没有这个就没有进步对话的目的。

但是你可以使用 AsyncTask类代替线程和处理程序来显示android中的进度对话框。

请参阅this了解AsyncTask类。

答案 2 :(得分:0)

进度条和progressdialog是不同的。

您也可以通过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>

由于 迪帕克