Android设备的另外一个常见的用户界面功能是在应用程序执行长时间运行的任务时显示的Please wait对话框。例如:应用程序可能需要在登录到服务器以后才能让用户使用或者需要在执行计算后才能显示结果给用户。在这类情况中,显示“进度对话框”很有帮助,这样用户就知道操作正在进行中。
显示一个进度(Please wait)对话框:
新建android项目命名为Dialog。在main.xml中:
<RelativeLayout 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"
tools:context=".MainActivity" >
<Button
android:id="@+id/btn_dialog2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Click to display a progress dialog"
android:onClick="onClick2"/>
</RelativeLayout>
在DialogActivity.java中:
package com.example.dialoggg;
import android.os.Bundle;
import android.view.View;
import android.app.Activity;
import android.app.ProgressDialog;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View v){
//为了创建一个进度对话框,首先要创建一个ProgressDialog类的实例并调用其show()方法
final ProgressDialog dialog=ProgressDialog.show(this,
"Doing something", "Please wait...", true);
/**使用Runnable代码块创建了一个Thread线程,run()方法中的代码将在一个单独的线程中执行,
* 在run()方法中使用sleep()插入延迟5秒*/
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
//5秒之后,调用dismiss()方法关闭进度对话框
dialog.dismiss();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}