025 Android 带进度条的对话框(ProgressDialog)
1.ProgressDialog介绍
ProgressDialog可以在当前界面弹出一个置顶于所有界面元素的对话框,同样具有屏蔽其他控件的交互能力,用于提示用户当前操作正在运行,让用户等待;
2.应用案例
(1)页面布局的xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".AdvanceToolActivity"> <TextView
style="@style/TitleStyle"
android:text="高级工具" /> <TextView
android:id="@+id/tvAT_query_address"
android:text="归属地查询"
android:gravity="center"
android:textSize="18dp"
android:background="@drawable/selector_advanvetool_item_bg"
android:drawableLeft="@android:drawable/btn_star"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"/> <TextView
android:id="@+id/tvAT_sms_copy"
android:text="短信备份"
android:gravity="center"
android:textSize="18dp"
android:background="@drawable/selector_advanvetool_item_bg"
android:drawableLeft="@android:drawable/btn_star"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"/> </LinearLayout>
(2)java后台代码
package com.example.administrator.test62360safeguard; import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView; public class AdvanceToolActivity extends AppCompatActivity {
TextView tvAT_query_address;
TextView tvAT_sms_copy;
private final static int MAXVALUE = 100;
private int currentProgress = 0;
private ProgressDialog progressDialog; //更新UI界面
@SuppressLint("HandlerLeak")
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
progressDialog.setProgress(currentProgress);
if(currentProgress>=MAXVALUE){
progressDialog.dismiss();//关闭进度条对话框
}
}
}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_advance_tool); //电话归属地查询
initPhoneAddress();
//短信备份
initSmsCopy();
} /**
* 短信备份
*/
private void initSmsCopy() {
tvAT_sms_copy=findViewById(R.id.tvAT_sms_copy);
tvAT_sms_copy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showSmsCopyDialog();
}
});
} /**
* 显示一个带进度条的对话框
*/
private void showSmsCopyDialog() {
progressDialog = new ProgressDialog(this); //注意:这里的上下文必须是this,而不能用getApplicationContext()
progressDialog.setIcon(R.mipmap.ic_launcher); //设置对话框的图标
progressDialog.setTitle("短信备份"); //设置对话框标题
progressDialog.setMax(MAXVALUE); //设置进度条的最大值
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //指定进度条的样式为水平
progressDialog.show(); //开启一个线程
new Thread(){
@Override
public void run() {
while (currentProgress<MAXVALUE){
currentProgress=currentProgress+5;
try {
Thread.sleep(500); //模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.sendEmptyMessage(0);
}
}
}.start();
} /**
* 电话归属地查询
*/
private void initPhoneAddress() {
tvAT_query_address=findViewById(R.id.tvAT_query_address);
tvAT_query_address.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(getApplicationContext(),QueryAddressActivity.class);
startActivity(intent);
}
});
}
}
3.效果图

025 Android 带进度条的对话框(ProgressDialog)的更多相关文章
- Android带进度条的文件上传,使用AsyncTask异步任务
最近项目中要做一个带进度条的上传文件的功能,学习了AsyncTask,使用起来比较方便,将几个方法实现就行,另外做了一个很简单的demo,希望能对大家有帮助,在程序中设好文件路径和服务器IP即可. A ...
- 高仿手机QQ音乐之——Android带进度条的开关
最新版的手机QQ音乐体验确实不错,发现首页播放按钮能够显示歌曲当前进度条.认为挺有新意.效果例如以下: 自己琢磨了下.能够用自己定义组件来实现,试着做了一下.效果例如以下: 整理了下思路.大概设计流程 ...
- Android -- 自定义带进度条的按钮
1. 实现了一个带进度条的按钮,完成后显示提示信息,并设置按钮为不可再次被点击
- Android更新带进度条的通知栏
在网上查询了下.Android版本号更新通知栏带进度条,醉了,基本都是复制过来.有的代码不全,连源代码下载都没有.有下载也须要积分,还不能用,真黑心啊!!之前自己也写过自己定义通知栏Notificat ...
- 自定义带进度条的WebView , 增加获取web标题和url 回掉
1.自定义ProgressWebView package com.app.android05; import android.content.Context; import android.graph ...
- web app升级—带进度条的App自动更新
带进度条的App自动更新,效果如下图所示: 技术:vue.vant-ui.5+ 封装独立组件AppProgress.vue: <template> <div> <va ...
- linux 复 带进度条
rsync命令 #rsync -av --progress /mnt/yidong2/full20100526.tar.gz /mnt/yidong1/ 可以实现本机带进度条提示拷贝,可以实现不同机器 ...
- java进行文件上传,带进度条
网上看到别人发过的一个java上传的代码,自己写了个完整的,附带源码 项目环境:jkd7.tomcat7. jar包:commons-fileupload-1.2.1.jar.commons-io-1 ...
- 赞!带进度条的 jQuery 文件拖放上传插件
jQuery File Uploader 是一个 jQuery 文件拖放上传插件,包括 Ajax 上传和进度条效果.作者编写这个插件的想法是要保持它非常简单,不像其他的插件,很多的标记,并提供一些 H ...
随机推荐
- SSM 整合 ehcache 报错
异常: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springfra ...
- Cayley-Hamilton定理与矩阵快速幂优化、常系数线性递推优化
原文链接www.cnblogs.com/zhouzhendong/p/Cayley-Hamilton.html Cayley-Hamilton定理与矩阵快速幂优化.常系数线性递推优化 引入 在开始本文 ...
- Spring Boot|监控-Actuator
Spring Boot 为我们提供了一个生产级特性-Actuator,包含很多实际有用的API,下面我们就一起来看看这些API. 一.Actuator 首先在程序中引入Actuator <!-- ...
- SPM(Software Project Management)课程感想
今天要说的是软件项目管理课程学习后的一些心得体会.这学期我选修了软件项目管理课程,进行了共8周的学习. 其实,进入大三后,我们开设了各种专业选修课,通过对各种课程的学习,我见识到了丰富多样的知识体 ...
- mysql查看数据库表数量
1.查看数据库表数量SELECT count(TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA='dbname'; selec ...
- Workstation 14 Returns EFI Network Start PXE over IPv4 When Installing New Win10 Guest O/S
当启动出现“Click any key to boot from DVD”时候,需要键盘点击一下,即可解决. 参考:https://communities.vmware.com/thread/5730 ...
- Linux tar: Cannot change ownership to [..]: Permission denied
tar xzf $INPUT_FOLDER/archive.tar.gz --no-same-owner -C /mnt/test-nas/
- How to: Secure Connection Strings When Using Data Source Controls
https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-3.0/dx0f3cf2(v=vs.85) When wo ...
- SQL Server DATEADD() 当前时间减7小时
- Tosca 添加 modules,添加Library,引用重复步骤
#增加modules modules模块式基础,好像一切都得从modules开始,想下面这样一个简单的login module就建好了 把这个module login 拖到具体的test case上 ...