Android ProgressDialog创建三种简单的进度对话框
2014-09-16 16:23
351 查看
main.xml
ProgressDialogTest.java
<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" > <Button android:id="@+id/bt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮1" /> <Button android:id="@+id/bt2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮2" /> <Button android:id="@+id/bt3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮3" /> </LinearLayout>
ProgressDialogTest.java
package com.example.progressdialog; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.app.ProgressDialog; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class ProgressDialogTest extends Activity { final static int MAX_PROGRESS = 100; //该程序模拟填充长度为100的数组 private int[] data = new int [50]; //记录进度对话框的完成百分比 int progressStatus = 0; int hasData = 0; ProgressDialog pd1,pd2; //定义一个负责更新的进度的Handler Handler handler = new Handler() { public void handleMessage(Message msg) { //表明消息是由该程序发送的 if(msg.what == 0x123) { pd2.setProgress(progressStatus); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button bt1; final Button bt2; final Button bt3; bt1 = (Button)findViewById(R.id.bt1); bt1 .setOnClickListener(new View.OnClickListener() { public void onClick(View v) { showSpinner(bt1); } }); bt2 = (Button)findViewById(R.id.bt2); bt2 .setOnClickListener(new View.OnClickListener() { public void onClick(View v) { showIndeterminate(bt2); } }); bt3 = (Button)findViewById(R.id.bt3); bt3 .setOnClickListener(new View.OnClickListener() { public void onClick(View v) { showProgress(bt3); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.progress_dialog_test, menu); return true; } public void showSpinner(View source) { //调用静态方法显示环形进度条 ProgressDialog.show(this, "任务执行中","任务执行中,请等待",false,true); } public void showIndeterminate(View sourse) { pd1 = new ProgressDialog(ProgressDialogTest.this); //设置对话框的标题 pd1.setTitle("任务正在执行中"); //设置对话框显示的内容 pd1.setMessage("任务正在执行中,请等待..."); //设置对话框能用“取消”按钮关闭 pd1.setCancelable(true); //设置对话框的进度条风格 pd1.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置对话框的进度条是否显示进度 pd1.setIndeterminate(true); pd1.show(); } public void showProgress(View source) { //将进度条的完成进度重设为0 progressStatus = 0; //重新开始填充数组 hasData = 0; pd2 = new ProgressDialog(ProgressDialogTest.this); pd2.setMax(MAX_PROGRESS); //设置对话框的标题 pd2.setTitle("任务完成百分比"); //设置对话框显示的内容 pd2.setMessage("耗时任务的完成百分比"); //设置对话框不能用“取消”按钮关闭 pd2.setCancelable(false); //设置对话框的进度条风格 pd2.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置对话框的进度条是否显示进度 pd2.setIndeterminate(false); pd2.show(); new Thread() { public void run() { while(progressStatus<MAX_PROGRESS) { //获取耗时操作的完成百分比 progressStatus = MAX_PROGRESS *doWork()/data.length; //发送空消息到Handler handler.sendEmptyMessage(0x123); } //如果任务已经完成 if(progressStatus >= MAX_PROGRESS) { //关闭对话框 pd2.dismiss(); } } }.start(); } //模拟一个耗时的操作 public int doWork() { //为数组元素赋值 data[hasData++] = (int)(Math.random()*100); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } return hasData; } }
相关文章推荐
- Android中使用ProgressDialog创建进度对话框
- Android中创建一个透明的进度对话框实例
- 使用ProgressDialog创建进度对话框-showDialog方式
- Android的ProgressDialog进度对话框的使用
- Android--创建进度框ProgressDialog
- 2.5.6 使用progressDialog创建进度对话框
- 使用ProgressDialog创建进度对话框
- android应用与服务器交互时的进度对话框ProgressDialog
- Android菜鸟在成长-进度处理对话框:ProgressDialog水平进度条
- android 创建一个简单的自定义对话框
- Android菜鸟在成长-进度处理对话框:ProgressDialog
- Android开发系列(二十七):使用ProgressDialog创建进度对话框
- Android对话框(二)进度条对话框ProgressDialog和自定义对话框CustomDialog
- android实践--进度对话框(ProgressDialog)
- Android之进度条对话框Progressdialog
- 使用ProgressDialog创建进度对话框
- Android--ProgressBar(进度条)、ProgressDialog(进度条对话框)
- Android-------对话框中进度条(ProgressDialog)
- 使用ProgressDialog创建进度对话框
- android 通过构造创建进度对话框