关于安卓开发实现进度条对话框
进度条对话框(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 }
作者:听着music睡
出处:http://www.cnblogs.com/xqxacm/
Android交流群:38197636
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?