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)的更多相关文章

  1. Android带进度条的文件上传,使用AsyncTask异步任务

    最近项目中要做一个带进度条的上传文件的功能,学习了AsyncTask,使用起来比较方便,将几个方法实现就行,另外做了一个很简单的demo,希望能对大家有帮助,在程序中设好文件路径和服务器IP即可. A ...

  2. 高仿手机QQ音乐之——Android带进度条的开关

    最新版的手机QQ音乐体验确实不错,发现首页播放按钮能够显示歌曲当前进度条.认为挺有新意.效果例如以下: 自己琢磨了下.能够用自己定义组件来实现,试着做了一下.效果例如以下: 整理了下思路.大概设计流程 ...

  3. Android -- 自定义带进度条的按钮

    1. 实现了一个带进度条的按钮,完成后显示提示信息,并设置按钮为不可再次被点击

  4. Android更新带进度条的通知栏

    在网上查询了下.Android版本号更新通知栏带进度条,醉了,基本都是复制过来.有的代码不全,连源代码下载都没有.有下载也须要积分,还不能用,真黑心啊!!之前自己也写过自己定义通知栏Notificat ...

  5. 自定义带进度条的WebView , 增加获取web标题和url 回掉

    1.自定义ProgressWebView package com.app.android05; import android.content.Context; import android.graph ...

  6. web app升级—带进度条的App自动更新

    带进度条的App自动更新,效果如下图所示:   技术:vue.vant-ui.5+ 封装独立组件AppProgress.vue: <template> <div> <va ...

  7. linux 复 带进度条

    rsync命令 #rsync -av --progress /mnt/yidong2/full20100526.tar.gz /mnt/yidong1/ 可以实现本机带进度条提示拷贝,可以实现不同机器 ...

  8. java进行文件上传,带进度条

    网上看到别人发过的一个java上传的代码,自己写了个完整的,附带源码 项目环境:jkd7.tomcat7. jar包:commons-fileupload-1.2.1.jar.commons-io-1 ...

  9. 赞!带进度条的 jQuery 文件拖放上传插件

    jQuery File Uploader 是一个 jQuery 文件拖放上传插件,包括 Ajax 上传和进度条效果.作者编写这个插件的想法是要保持它非常简单,不像其他的插件,很多的标记,并提供一些 H ...

随机推荐

  1. Codeforces Round #576 (div.1 + div.2)

    Div2 A 长度为\(n(n≤10^5)\)的数组,每个元素不同,求有多少个位置\(d\)满足\(d - x \le j < d \And d < j \le d + y a_d< ...

  2. css自定义属性和简单效果

    简介 CSS Variables,一个并不是那么新的东西,但对css来说绝对是一场革命. 之前使用变量的时候,需要借助sass.less等预处理工具来实现,现在我们可以直接使用css来声明变量. 兼容 ...

  3. c# 模拟并发请求 ,只能并发2个连接。

    使用 HttpWebRequest 模拟并发请求的时候,发现不管怎么提高thread 的数量,都没用,服务器端用计数器看到的都是2个连接,见下图(关于计数器怎么开,百度) 然后搜了一下,发现需要在ap ...

  4. springcloud config自动刷新中文乱码问题

    摘录一段网上盛传的,如下: 在使用 spring cloud config 时,如果在 properties 文件里面有中文的话,会出现乱码. 乱码的原因是:spring 默认使用org.spring ...

  5. IdHTTPServer开发https服务器

    IdHTTPServer开发https服务器 该篇经验同样适用于DATASNAP和UNIGUI,因为它们都基于INDY10. 1)需要TIdServerIOHandlerSSLOpenSSL控件 2) ...

  6. Xcode: Xcode中Command Line Tools的安装方法

    1. 打开终端: 2. 输入命令: xcode-select --install ,如果出现下图,说明你已经安装过了,下边内容也不用看了 如果出现下图说明还没有安装,点击安装 同意协议: 稍等片刻.. ...

  7. Tomcat7/8/8.5三种版本的redis-session-manager的jar和xml配置均不同

    chexagon/redis-session-manager: A tomcat8 session manager providing session replication via persiste ...

  8. AI项目(CV方向)研发流程

  9. flutter Card卡片列表组件

    一个 Material Design 卡片.拥有一个圆角和阴影 import 'package:flutter/material.dart'; import './model/post.dart'; ...

  10. Python3入门(十三)——常用内置模块之时间日期模块datatime

    1.日期时间模块——datatime //其他模块例如time.calender等模块暂不展开 (1)获取当前时间:datatime.now(): from datetime import datet ...