Android学习笔记(八)——显示运行进度对话框

显示运行进度对话框


我们经常有这种经历:运行某一应用程序时。须要等待一会,这时会显示一个进度(Please Wait)对话框,让用户知道操作正在进行。

我们继续在上一篇中的程序中加入代码~


1、在上一篇的activity_main.xml文件里加入一个Button,加入后的代码例如以下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/btn_dialog"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="Click to display a dialog" />

    <Button
        android:id="@+id/btn_dialog2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick2"
        android:text="Click to display a progress dialog" />

</LinearLayout>

2、在MainActivity.java中加入一个onClick2()方法。加入的代码块例如以下:

	public void onClick2(View v) {
		// ---show the dialog---
		final ProgressDialog dialog = ProgressDialog.show(this,
				"Doing something", "Please wait...", true);//创建一个进度对话框
		new Thread(new Runnable() {//使用Runnable代码块创建了一个Thread线程
			@Override
			public void run() {//run()方法中的代码将在一个单独的线程中运行
				// TODO Auto-generated method stub
				try {
					// ---simulate doing something lengthy---
					Thread.sleep(5000);//模拟一个耗时5秒的操作
					// ---dismiss the dialog---
					dialog.dismiss();//5秒钟后,调用dismiss方法关闭进度对话框
				} catch (InterruptedException e) {
					// TODO: handle exception
					e.printStackTrace();
				}
			}
		}).start();
	}

3、运行。点击第二个button。效果例如以下:


5秒后,进度条自己主动消失,程序恢复原来的状态~

点击下载完整代码~

posted @ 2018-04-07 12:10  llguanli  阅读(165)  评论(0编辑  收藏  举报