zoukankan      html  css  js  c++  java
  • 关于安卓开发实现进度条对话框

    进度条对话框(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 }
    代码

    作者:听着music睡

    出处:http://www.cnblogs.com/xqxacm/

    Android交流群:38197636

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    记一次擦窗机器人项目的拯救
    基于超声波的四轴定高控制简析
    秋夜
    还能再来过?
    机器人设计之一简单机械设计
    管理之殇
    C++11笔记<一>
    Android开发的菜鸟小记
    程序员客栈与DaoCloud这两家企业联手后,运维工程师要失业了!
    关爱码农成长:关于写代码二三事
  • 原文地址:https://www.cnblogs.com/xqxacm/p/4130560.html
Copyright © 2011-2022 走看看