进度条对话框(ProgressDialog)分为圆形和横向两种类型。
方法:
onCreatDialog(int id);创建一个对话框,只有在第一次创建该ID标识的Dialog时执行
onCreatDialog(int id,Bundle args);同上,带参数
onPrepareDialog(int id,Dialog dialog);在onCreateDialog之后,每次在对话框被显示之前都执行
onPrepareDialog(int id,Dialog dialog,Bundle args);同上,带参数
showDialog(int id);显示对话框
showDialog(int id,Bundle args);显示对话框,带参数
dismissDialog(int id);隐藏对话框,不从Activity中移除,保留状态
在layout 中添加两个按钮。第一个id 设为click_1 ,显示圆形进度条 第二个id设为click_2 ,显示横向进度条
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 7 <Button 8 android:id="@+id/click_1" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:text="圆形进度条" /> 12 13 <Button 14 android:id="@+id/click_2" 15 android:layout_width="wrap_content" 16 android:layout_height="wrap_content" 17 android:text="横向进度条" /> 18 19 </LinearLayout>
在.java文件中
1 package lianxi; 2 3 import com.example.jichu_lianxi.R; 4 5 import android.accounts.OnAccountsUpdateListener; 6 import android.app.Activity; 7 import android.app.Dialog; 8 import android.app.ProgressDialog; 9 import android.content.DialogInterface; 10 import android.os.Bundle; 11 import android.view.View; 12 import android.view.View.OnClickListener; 13 import android.widget.Button; 14 import android.widget.Toast; 15 16 public class KeyOnclick extends Activity{ 17 private Button click_1; 18 private Button click_2; 19 private ProgressDialog mpdialog; 20 private int flag = 0; 21 @Override 22 protected void onCreate(Bundle savedInstanceState) { 23 // TODO Auto-generated method stub 24 super.onCreate(savedInstanceState); 25 setContentView(R.layout.key); 26 27 click_1 = (Button) findViewById(R.id.click_1); 28 click_2 = (Button) findViewById(R.id.click_2); 29 30 click_1.setOnClickListener(new OnClickListener() { 31 32 @Override 33 public void onClick(View v) { 34 // TODO Auto-generated method stub 35 mpdialog = new ProgressDialog(KeyOnclick.this); 36 //设置圆形进度条风格 37 mpdialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 38 mpdialog.setTitle("提示"); //设置标题 39 //mpdialog.setIcon(R.drawable.icon); //设置图标 40 mpdialog.setMessage("这是圆形进度条"); //设置内容 41 mpdialog.setIndeterminate(false); //设置进度条是否可以不明确 42 mpdialog.setCancelable(true); //设置进度条是否可以取消 43 mpdialog.setButton("确定", new DialogInterface.OnClickListener() { 44 45 @Override 46 public void onClick(DialogInterface dialog, int whic) { 47 // TODO Auto-generated method stub 48 dialog.cancel(); //取消 49 } 50 }); 51 mpdialog.show(); //显示进度条 52 } 53 }); 54 55 click_2.setOnClickListener(new OnClickListener() { 56 57 @Override 58 public void onClick(View v) { 59 // TODO Auto-generated method stub 60 flag = 0; 61 mpdialog = new ProgressDialog(KeyOnclick.this); 62 //设置横向进度条风格 63 mpdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 64 mpdialog.setTitle("提示"); //设置标题 65 //mpdialog.setIcon(R.drawable.icon); //设置图标 66 mpdialog.setMessage("这是横向进度条"); //设置内容 67 mpdialog.setMax(100); 68 mpdialog.setProgress(0); 69 mpdialog.setSecondaryProgress(50); 70 mpdialog.setIndeterminate(false); //设置进度条是否可以不明确 71 mpdialog.setCancelable(true); //设置进度条是否可以取消 72 mpdialog.setButton("确定", new DialogInterface.OnClickListener() { 73 74 @Override 75 public void onClick(DialogInterface dialog, int whic) { 76 // TODO Auto-generated method stub 77 dialog.cancel(); //取消 78 } 79 }); 80 new Thread(){ 81 public void run() { 82 try{ 83 while (flag<=100) 84 { 85 mpdialog.setProgress(flag++); 86 Thread.sleep(100); 87 } 88 mpdialog.cancel(); 89 } 90 catch(Exception e) 91 { 92 mpdialog.cancel(); 93 94 } 95 } 96 }.start(); 97 mpdialog.show(); //显示进度条 98 } 99 }); 100 } 101 }