使用ProgressDialog创建进度对话框-showDialog方式

C# 非模态窗体(show)实现模态窗体(ShowDialog)的效果 立即下载


xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" 
    android:orientation="vertical">

    <Button 
        android:id="@+id/mybut"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="点击下载"/>

</LinearLayout>

java文件

package com.example.progressdialog;


import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class MainActivity extends Activity {


final int PROGRESS_DIALOG=0x112;

ProgressDialog pd;

//记录进度对话框的完成百分比
int progressStatus=0;
//该程序模拟填充长度为100的数组
private int[] data=new int[100];

int hasData=0;
Button mybut;

//定义一个负责更新进度的Handler
Handler handler;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mybut=(Button) super.findViewById(R.id.mybut);

//为按钮设置监听
mybut.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
showDialog(PROGRESS_DIALOG);

}
});

handler=new Handler(){
public void handleMessage(Message msg){
//表明消息是由该程序发送的
if(msg.what==0x111){
pd.setProgress(progressStatus);
}
}
};
}


@Override
protected Dialog onCreateDialog(int id, Bundle args) {

switch(id){
case PROGRESS_DIALOG:
//创建进度对话框
pd=new ProgressDialog(MainActivity.this);
pd.setMax(100);
//设置对话框的标题
pd.setTitle("任务完成百分比");
//设置对话框显示的内容
pd.setMessage("耗时任务的完成百分比");
//设置对话框不能"取消"按钮关闭
pd.setCancelable(true);
//设置对话框进度条的风格,圆形进度条
//pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
//长方形进度条
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//设置对话框的进度条是否显示进度
pd.setIndeterminate(false);

pd.setIcon(R.drawable.ic_launcher);

break;
}

return pd;
}


/**
* 在对话框被显示之前,Android还会调用onPrepareDialog(int, Dialog). 如果你希望每次显示对话框时有动态更改的内容, 那么就改写这个函数. 
*该函数在每次一个对话框打开时都调用. 如果你不定义该函数,则对话框每次打开都是一样的. 该函数也会传入对话框的id以及你在onCreateDialog()中创建的Dialog对象.
*/

//将对话框的进度清零
protected void onPrepareDialog(int id, Dialog dialog) {

super.onPrepareDialog(id, dialog);
switch(id){
case PROGRESS_DIALOG:
//对话框进度清零
pd.incrementProgressBy(-pd.getProgress());
new Thread(){
public void run (){
while(progressStatus<100){

progressStatus=doWork();
//发送消息到Handler
Message m=new Message();
m.what=0x111;
handler.sendMessage(m);
}
//如果任务已经完成
if(progressStatus>=100){
//关闭对话框
pd.dismiss();
}
}
}.start();
pd.show();
break;
}

}

//模拟一个耗时操作
public int doWork(){
//为数组元素赋值
data[hasData]=(int)(Math.random()*100);
hasData++;
try{
Thread.sleep(100);
}
catch(InterruptedException e){
e.printStackTrace();
}
return hasData;
}
}

STM32F407+OV2640的DCMI+DMA双缓冲JPEG图像采集系统 在嵌入式视觉系统中,数字摄像头接口(DCMI)是MCU连接CMOS图像传感器的关键硬件通道,其与DMA协同实现零CPU干预的高速数据流采集;而JPEG作为一种基于DCT变换与量化压缩的有损图像格式,依赖传感器端硬件编码引擎才能满足实时性要求。理解DCMI三重同步时序(PCLK/HSYNC/VSYNC)与DMA双缓冲机制的流水线协作原理,是突破带宽瓶颈、避免FIFO溢出和帧丢失的技术基础。该架构广泛应用于智能硬件、工业检测与边缘AI前端等需低功耗、高可靠图像捕获的场景,本文以OV2640与STM32F407为 阅读详情

相关推荐

OPC与AI智能体集成实战:一人公司的技术栈构建与避坑指南

1. 先搞清楚“一人公司”和“AI工具”到底在解决什么问题 最近看到不少关于“裸辞搞OPC一人公司”和“AI时代骗局”的讨论,结合搜索热词里高频出现的 openclaw 、 AI编程 、 OPC ,我觉得有必要把这里面的水搅一搅,说点实在的。 首先得拆开看。标题里混了三个东西: 一人公司 、 OPC/OpenClaw 、 AI培训 。它们被放在一起讨论“骗局”,但本质上解决的是不同层面的问题。 一人公司 ,或者说个人工作室、独立开发者模式,核心是 用最小化团队(甚至一个人)去承接项目、开发产品或提供服务 。

weixin_29038345的博客 320

ProgressDialog的详细使用总结

ProgressDialog的详细使用方式总结 简单演示 静态方法实例化ProgressDialog 常规方法实例化 设置样式 设置点击空白返回,返回键返回 设置按钮 调用Show方法将Dialog显示出来 进度的设置及不确定状态的使用 简单演示常用方法总结1.静态方法实例化ProgressDialog(只能创建圆形条) ProgressDialog.show(Context context, Ch

Brioal Is Hardworking 1万+

2025虚幻游戏逆向工程解包尝试

2025虚幻游戏逆向工程解包指南 本文详细介绍了虚幻引擎5游戏逆向解包的完整流程,主要包括获取AES密钥、生成映射文件和导出资源三个关键步骤。作者在实际操作中遇到诸多难题:AES密钥获取工具存在加壳保护问题,映射文件生成器依赖复杂的VS编译环境,DLL注入工具的使用也存在技术门槛。通过多次尝试,作者发现部分游戏可直接搜索现成的AES密钥,而映射文件生成需要额外下载Memcury依赖库才能正常编译。文章提供了相关工具的下载链接和具体操作说明,但同时也指出每个环节都可能出现意外状况,逆向工程实际执行过程远比理论

wsdchong的博客 6150

ProgressDialog使用总结

本文转载于:http://blog.csdn.net/caesardadi/article/details/11982721 ProgressDialog的使用  ProgressDialog 继承自AlertDialog,AlertDialog继承自Dialog,实现DialogInterface接口。 ProgressDialog的创建方式有两种,一种是new

阿良的专栏 1155

C语言头文件完全解析(连“#”我都给你讲明白)

C语言头文件完全解析 引言 本文将尽量详细的介绍c语言的头文件所包含的知识,如有错误,还望指正。 萌新们肯定疑惑为什么每次打代码都要写一个所谓的头文件(如:#include<stdio.h>),这里先简单让大家有个了解,你所用的 printf("%d",a)就是这个 stdio里的东西,如果没有这个头文件,编译器都不知道 printf是个什么东东。所以头文件就是一个准备好的大仓库,你可...

CRAZY_eyes的博客 7万+

UniTouch:多模态触觉对齐技术如何重塑零样本跨模态应用

UniTouch模型通过创新的多模态触觉对齐技术,成功将触觉数据映射到通用的视觉-语言嵌入空间,解决了触觉模态的“孤岛困境”。该技术利用对比学习和传感器特定标记,实现了高质量的零样本学习能力,使模型无需额外训练即可完成触觉分类、描述等任务,并能驱动跨模态生成,为机器人、VR和智能制造等领域提供了强大的触觉理解新范式。

weixin_29044713的博客 409

ProgressDialog用法详解

转载自:https://www.cnblogs.com/rwind/p/5483652.html ProgressDialog的基本用法 ProgressDialog为进度对话框。android手机自带的对话框显得比较单一,我们可以通过ProgressDialog来自己定义对话框中将要显示出什么东西。 首先看看progressDialog里面的方法 setProgressStyle:设置进度条风格,风格为圆形,旋转的。 setTitlt:设置标题 setMessage:设置...

JerryQuery的博客 4955

【LaTex】3.5 数据分析

简述了LaTex柱状图、饼图、折线图的画法。

你的指尖有改变世界的力量 5888

进度对话框 ProgressDialog__2019.09.05

private void showProgressDialog() { ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setTitle("This is a progressDialog!"); progressDialog...

weixin_40316053的博客 372

2-1 AUTOSAR ASW概述

应用软件层(Application Software Layer,ASW)位于AUTOSAR整个架构的顶层。它由各种AUTOSAR Software Component(SW-C)组成,每个SW-C封装了各种应用的功能集。每个SW-C只能运行在一个ECU中。ASW层的设计目标是实现功能的可重用性和可配置性。它通过封装底层提供的服务,为上层应用层提供统一的接口。ASW层的开发可以基于AUTOSAR提供的标准化软件组件,也可以根据具体需求进行定制开发。

qq_42357877的博客 1902

模式分类识别 | TCN时间卷积神经网络多特征分类预测(Matlab完整程序)

模式分类识别 | TCN时间卷积神经网络多特征分类预测(Matlab完整程序)

前程算法屋的博客 748

android的弹出框 -(一)--AlertDialog,时间弹出框DatePickerDialog 和进度条弹出框showProgressDialog

这里介绍三种弹出框android的弹出框AlertDialog,时间弹出框DatePickerDialog 和进度条弹出框showProgressDialog--我将在下一篇介绍自定义弹出框 这里我们我们同一个layout.xml来写按钮事,app中肯定是少不了与用户交互的各种dialog,所以我们可以用谷歌的工程师包装好的方法来做这个弹出框 android:onClick="(自定义的

GressLove的博客 4122

为什么我的OpenClaw安装后无法启动?Gateway服务故障排查全攻略

OpenClaw是一款功能强大的自动化工具,但其安装和运行依赖于多个服务组件,其中Gateway服务是核心组件之一。如果Gateway服务无法启动,整个OpenClaw系统将无法正常运行。本文将详细介绍OpenClaw安装后无法启动的常见原因及故障排查方法,帮助你快速定位并解决问题。

一键难忘的博客 4625

android开发之美化版的ProgressDialog进度框

懒惰,只是为了更好的懒惰!

ZaneLove's blog 3091

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android学习笔记之ProgressDialog

mian.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >

落日小屋 1934

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

如何快速上手 IBAnalyzer:二进制、CocoaPods 与源码编译 3 种安装方式完整教程

IBAnalyzer 是一款专为 iOS 开发者打造的 xib / storyboard 静态检查工具。它可以扫描你项目中的 `.xib`、`.storyboard` 与 `.swift` 文件,找出未实现的 `@IBOutlet`、`@IBAction` 以及定义了却从未连接的多余成员——全程无需运行 App,也无需编写单元测试。本文是 IBAnalyzer 安装的完整教程,带你用二进制、Coc

gitblog_00865的博客 915

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

View(视图)——进度对话框

一.进度对话框 ProgressDialog 1.用法 1-new progressDialog(Context) 2-setTitle (标题) 3-setMessage (信息) 4-show() 显示 5-setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); ...

weixin_30306905的博客 90

Android Dialog用法-AlertDialog,ProgressDialog

转载http://blog.csdn.net/ameyume/article/details/6138488 摘要: 创建对话框 一个对话框一般是一个出现在当前Activity之上的一个小窗口. 处于下面的Activity失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用程序直接相关的小功能.Android API 支持下列类型 ... 创建对话框  一个对话框...

haishizi1的专栏 139

UI对话框

安卓提供了丰富的对话框支持,它提供了如下4种常用的对话框。 AlertDialog:功能最丰富、实际应用最广泛的对话框。 ProgressDialog:进度对话框,这个对话框只是对进度条的包装。 DataPickerDialog:日期选择对话框,这个对话框只是对DataPicker的包装。 TimePickerDialog:时间选择对话框,这个对话框只是对TimePicker的包装。 使用AlertDialog创建对话框可以生成各种内容的对话框,实际上生成的对话框的结构是一定的,结构如下:区域分为四个:图标

weixin_45805495的博客 199

Android 自定义progressDialog实现

我们在项目中经常会遇到这样一个应用场景:执行某个耗时操作时,为了安抚用户等待的烦躁心情我们一般会使用进度条之类的空间,在android中让大家最 容易想到的就是progressbar或者progressDialog,区别在于前者是一个控件,后者是对话框。由于一些需求在弹出进度条时不希望用户 能够操作其他控件,所以只能使用progressDialog,这个时候有遇到了一个问题,我不想要progres

流苏的专栏 859

The method showDialog(int) from the type Activity is deprecated-android旧版dialog不能用的问题

先说API 13之前的用法: 创建对话框   一个对话框一般是一个出现在当前Activity之上的一个小窗口. 处于下面的Activity失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用程序直接相关的小功能.   Android API 支持下列类型的对话框对象:   警告对话框 AlertDialog:  一个可以有0到3个按钮, 一个单选框或复选框的列表的

William Zhao's notes 5757

onCreateDialog方法可以配置this.showDialog(id)方法使用

protected Dialog onCreateDialog(int id) { switch(id) { case 1: { ProgressDialog checkUpdateIng = new ProgressDialog(CallPlayer...

weixin_30394251的博客 172

android oncreatedialog不实时更新,[Android] Dialog--onPrepareDialog()和onCreateDialog

Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过 getOwnerActivity()方法返回该Activity管理的对话框(dialog).onC...

weixin_42472263的博客 566

1

Android UI学习 – 对话框 (AlertDialog & ProgressDialog)转 2011年04月09日 ⁄ Andriod ⁄ 暂无评论 ⁄ 被围观 10 views+ 显示对话框 对话框经常作为Activity的一部分来创建和显示。你通常应该从protected Dialog Activity.onCreateDialog (int

breeze666的专栏 385

android学习笔记之二Dailog(对话框)

1,创建  a,new AlertDialog.Builder(Context  context) b,一些设置 c,create()创建 d,show()显示 e,dismiss()退出对话框 2,常用方法 setIcon:设置图标 setTitle:设置标题 setPositiveButton:设置 确定按钮 setNegativeButton:设置 取消按钮 setNeutral

zhouyongyang621的专栏 1497

android Dialog 监听返回事件(back)

android Dialog 监听返回事件(back)

rgjtfc的博客 1363
上一篇: 使用ProgressDialog创建进度对话框
下一篇: 使用Toast显示提示信息框
普通网友
博客等级 码龄16年 90粉丝 1232原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值