安卓对话框之-----进度对话框(ProgressDialog)

使用代码ProgressDialog.show(ProgressDialogActivity.this, "请稍等", "数据正在加载中...", true);创建并显示一个进度对话框。
调用setProgressStyle()方法设置进度对话框风格。有两种风格:
     ProgressDialog.STYLE_SPINNER 旋体进度条风格 (为默认风格)
     ProgressDialog.STYLE_HORIZONTAL 横向进度条风格

 

1、同样,我们也在布局文件中用一个按钮进行测试

[html]  view plain copy print ?
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:paddingBottom="@dimen/activity_vertical_margin"  
  6.     android:paddingLeft="@dimen/activity_horizontal_margin"  
  7.     android:paddingRight="@dimen/activity_horizontal_margin"  
  8.     android:paddingTop="@dimen/activity_vertical_margin"  
  9.     tools:context=".MainActivity" >  
  10.   
  11.     <Button  
  12.         android:id="@+id/button1"  
  13.         android:layout_width="wrap_content"  
  14.         android:layout_height="wrap_content"  
  15.         android:layout_alignParentLeft="true"  
  16.         android:layout_alignParentRight="true"  
  17.         android:layout_alignParentTop="true"  
  18.         android:layout_marginTop="140dp"  
  19.         android:onClick="openDialog"  
  20.         android:text="@string/text_dialog"/>  
  21.   
  22. </RelativeLayout>  


 

2、引用的string.xml中的值

[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.   
  4.     <string name="app_name">lession16-dialog</string>  
  5.     <string name="action_settings">Settings</string>  
  6.     <string name="hello_world">Hello world!</string>  
  7.       
  8.     <string name="text_dialog">对话框的案例</string>  
  9.   
  10. </resources>  


 

3、MainActivity中的代码:

[java]  view plain copy print ?
  1. package com.example.lession16_dialog;  
  2.   
  3. import android.os.Bundle;  
  4. import android.os.Handler;  
  5. import android.os.Message;  
  6. import android.app.Activity;  
  7. import android.app.AlertDialog;  
  8. import android.app.ProgressDialog;  
  9. import android.content.DialogInterface;  
  10. import android.view.Menu;  
  11. import android.view.View;  
  12. import android.widget.Toast;  
  13.   
  14. public class MainActivity extends Activity {  
  15.     public Handler handler;  
  16.     private static final int MAX_PROGRESS=100;  
  17.     private static final int PRO=10;  
  18.     private int progress=10;  
  19.     private ProgressDialog progressDialog;  
  20.   
  21.     @Override  
  22.     protected void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.activity_main);  
  25.     }  
  26.   
  27.     @Override  
  28.     public boolean onCreateOptionsMenu(Menu menu) {  
  29.         // Inflate the menu; this adds items to the action bar if it is present.  
  30.         getMenuInflater().inflate(R.menu.main, menu);  
  31.         return true;  
  32.     }  
  33.   
  34.     @SuppressWarnings("deprecation")  
  35.     public void openDialog(View v) {  
  36.         handler=new Handler(){  
  37.             @Override  
  38.             public void handleMessage(Message msg) {  
  39.                 super.handleMessage(msg);  
  40.                 switch (msg.what) {  
  41.                 case PRO:  
  42.                     if(progress>=MAX_PROGRESS){  
  43.                         //重新设置  
  44.                         progress=0;  
  45.                         progressDialog.dismiss();//销毁对话框  
  46.                     }else{  
  47.                         progress++;  
  48.                         progressDialog.incrementProgressBy(1);  
  49.                         //延迟发送消息  
  50.                         handler.sendEmptyMessageDelayed(PRO, 100);  
  51.                     }  
  52.                     break;  
  53.   
  54.                 default:  
  55.                     break;  
  56.                 }  
  57.                   
  58.             }  
  59.         };  
  60.           
  61.         progressDialog=new ProgressDialog(this);  
  62.         progressDialog.setIcon(R.drawable.ic_launcher);  
  63.         progressDialog.setTitle("正在处理数据。。。");  
  64.         progressDialog.setMessage("请稍后。。");  
  65.         progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置进度条对话框//样式(水平,旋转)  
  66.           
  67.         //进度最大值  
  68.         progressDialog.setMax(MAX_PROGRESS);  
  69.         progressDialog.setButton("暂停",new DialogInterface.OnClickListener() {  
  70.               
  71.             @Override  
  72.             public void onClick(DialogInterface dialog, int which) {  
  73.                 //删除消息队列  
  74.                 handler.removeMessages(PRO);  
  75.                   
  76.             }  
  77.         });  
  78.           
  79.         progressDialog.setButton2("取消",new DialogInterface.OnClickListener() {  
  80.               
  81.             @Override  
  82.             public void onClick(DialogInterface dialog, int which) {  
  83.                 //删除消息队列  
  84.                 handler.removeMessages(PRO);  
  85.                 //恢复进度条初始值  
  86.                 progress=0;  
  87.                 progressDialog.setProgress(progress);  
  88.             }  
  89.         });  
  90.           
  91.         //显示  
  92.         progressDialog.show();  
  93.         //必须设置到show之后   
  94.         progress=(progress>0)?progress:0;  
  95.         progressDialog.setProgress(progress);  
  96.         //线程  
  97.         handler.sendEmptyMessage(PRO);  
  98.           
  99.     }  
  100.   
  101.     public void test1() {  
  102.         new AlertDialog.Builder(this)  
  103.                 .setIcon(R.drawable.ic_launcher)  
  104.                 .setTitle("xxxx")  
  105.                 .setMessage("是否创建文件")  
  106.                 .setPositiveButton("确认"new DialogInterface.OnClickListener() {  
  107.   
  108.                     @Override  
  109.                     public void onClick(DialogInterface dialog, int which) {  
  110.                         // 创建文件  
  111.                         new AlertDialog.Builder(MainActivity.this).setMessage(  
  112.                                 "文件已经被创建").show();  
  113.                     }  
  114.                 })  
  115.                 .setNegativeButton("取消"new DialogInterface.OnClickListener() {  
  116.   
  117.                     @Override  
  118.                     public void onClick(DialogInterface dialog, int which) {  
  119.                         new AlertDialog.Builder(MainActivity.this)  
  120.                                 .setMessage("您已经选择了取消的按钮,该文件不会被创建").create()  
  121.                                 .show();  
  122.                     }  
  123.                 }).show();  
  124.     }  
  125.   
  126.     public void test2() {  
  127.         // 创建对话框  
  128.         AlertDialog alertDialog = new AlertDialog.Builder(this).create();  
  129.         // 设置对话框的标题  
  130.         alertDialog.setTitle("xxxx");  
  131.         // 设置对话框的内容  
  132.         alertDialog.setMessage("消息");  
  133.         // 显示对话框  
  134.         alertDialog.show();  
  135.     }  
  136.   
  137.     public void test3() {  
  138.         AlertDialog alertDialog = new AlertDialog.Builder(this)  
  139.                 .setTitle("xxxx").setMessage("啊大声大声道").show();  
  140.     }  
  141.   
  142.     public void test4() {  
  143.         final String items[] = { "Java""Php""3G"".Net" };  
  144.         new AlertDialog.Builder(this).setTitle("简单列表对话框")  
  145.                 .setItems(items, new DialogInterface.OnClickListener() {  
  146.   
  147.                     @Override  
  148.                     public void onClick(DialogInterface dialog, int which) {  
  149.                         // 第一个参数dialog int which 条目  
  150.                         Toast.makeText(getApplicationContext(),  
  151.                                 "aaa" + items[which], Toast.LENGTH_LONG).show();  
  152.   
  153.                     }  
  154.                 }).show();  
  155.   
  156.     }  
  157.       
  158.     public void test5(){  
  159.         final String items[]={"JAVA",".NET","3G","PHP"};  
  160.         new AlertDialog.Builder(this).setTitle("单选列表对话框")  
  161.         //数字2代表的是数组的下标  
  162.             .setSingleChoiceItems(items, 2new DialogInterface.OnClickListener() {  
  163.                   
  164.                 @Override  
  165.                 public void onClick(DialogInterface dialog, int which) {  
  166.                     //第一个参数 dialog   int which  那个条目  
  167.                     Toast.makeText(getApplicationContext(), "xxxxx"+items[which], Toast.LENGTH_LONG).show();  
  168.                       
  169.                 }  
  170.             }).show();  
  171.     }  
  172.       
  173.       
  174.     public void test6(){  
  175.         final String items[]={"JAVA",".NET","PHP","3G"};  
  176.         new AlertDialog.Builder(this).setTitle("多选列表对话框的简单实现")  
  177.             .setMultiChoiceItems(items, new boolean[]{falsetrue,true,true},new DialogInterface.OnMultiChoiceClickListener() {  
  178.                   
  179.                 @Override  
  180.                 public void onClick(DialogInterface dialog, int which, boolean isChecked) {  
  181.                     Toast.makeText(getApplicationContext(), "sad"+items[which], Toast.LENGTH_LONG).show();  
  182.                       
  183.                 }  
  184.             }).show();  
  185.     }  
  186.   
  187. }  


 

4、效果图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值