关于安卓开发实现进度条对话框

进度条对话框(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>
Layout内容

 

在.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 }
代码

关于安卓开发实现进度条对话框

关于安卓开发实现进度条对话框

你可能感兴趣的:(安卓开发)