Android开发手记(8) ProgressDialog的使用
ProgressDialog,进度对话框。一般有两种,一种是圆形的进度条(ProgressDialog.STYLE_SPINNER),另一种是长条形的进度条(ProgressDialog.STYLE_HORIZONTAL)。

ProgressDialog常用的方法有以下几种:
progressDialog = new ProgressDialog(MainActivity.this); // 新建一个ProgressDialog
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 设置ProgressDialog的样式
progressDialog.setTitle("Note:"); // 设置标题
progressDialog.setMessage("这是一个水平进度条"); // 设置显示内容
progressDialog.setIndeterminate(false); // 是否是不确定状态
progressDialog.setCancelable(true); // 是否可以取消
progressDialog.setProgress(0); // 设置初始进度
progressDialog.setMax(200); // 设置最大进度
progressDialog.setSecondaryProgress(100); // 设置第二进度(可用于缓冲显示)
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
@Override // 设置按钮
public void onClick(DialogInterface dialogInterface, int i) { // DialogInterface表示按钮位置
progressDialog.cancel(); // BUTTON_POSITIVE 为最右边
} // BUTTON_NEUTRAL 为在中间
}); // BUTTON_NEGATIVE 为最左边
progressDialog.show(); // 显示ProgressDialog
1、圆形进度条
btnCricleDlg = (Button)findViewById(R.id.btnCircleDlg);
btnCricleDlg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setTitle("Note:");
progressDialog.setMessage("这是一个圆形进度条");
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(true);
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int witch) {
progressDialog.cancel();
}
});
progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"CANCEL",new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int witch){
progressDialog.cancel();
}
});
progressDialog.show();
}
});
2、长形进度条
btnLongDlg = (Button) findViewById(R.id.btnLongDlg);
btnLongDlg.setOnClickListener(new View.OnClickListener() {
int count = 0;
@Override
public void onClick(View view) {
progressDialog = new ProgressDialog(MainActivity.this); // 新建一个ProgressDialog
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 设置ProgressDialog的样式
progressDialog.setTitle("Note:"); // 设置标题
progressDialog.setMessage("这是一个水平进度条"); // 设置显示内容
progressDialog.setIndeterminate(false); // 是否是不确定状态
progressDialog.setCancelable(true); // 是否可以取消
progressDialog.setProgress(0); // 设置初始进度
progressDialog.setMax(200); // 设置最大进度
progressDialog.setSecondaryProgress(100); // 设置第二进度(可用于缓冲显示)
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
@Override // 设置按钮
public void onClick(DialogInterface dialogInterface, int i) { // DialogInterface表示按钮位置
progressDialog.cancel(); // BUTTON_POSITIVE 为最右边
} // BUTTON_NEUTRAL 为在中间
}); // BUTTON_NEGATIVE 为最左边
progressDialog.show(); // 显示ProgressDialog new Thread(){
public void run(){
while(count<=200){
try{
Thread.sleep(100);
progressDialog.incrementProgressBy(1);
}catch(Exception e){ } }
} }.start();
}
});
3、完整代码
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button btnCricleDlg;
private Button btnLongDlg;
private ProgressDialog progressDialog; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); btnCricleDlg = (Button)findViewById(R.id.btnCircleDlg);
btnLongDlg = (Button) findViewById(R.id.btnLongDlg); btnCricleDlg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setTitle("Note:");
progressDialog.setMessage("这是一个圆形进度条");
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(true);
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int witch) {
progressDialog.cancel();
}
});
progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"CANCEL",new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int witch){
progressDialog.cancel();
}
});
progressDialog.show();
}
}); btnLongDlg.setOnClickListener(new View.OnClickListener() {
int count = 0;
@Override
public void onClick(View view) {
progressDialog = new ProgressDialog(MainActivity.this); // 新建一个ProgressDialog
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); // 设置ProgressDialog的样式
progressDialog.setTitle("Note:"); // 设置标题
progressDialog.setMessage("这是一个水平进度条"); // 设置显示内容
progressDialog.setIndeterminate(false); // 是否是不确定状态
progressDialog.setCancelable(true); // 是否可以取消
progressDialog.setProgress(0); // 设置初始进度
progressDialog.setMax(200); // 设置最大进度
progressDialog.setSecondaryProgress(100); // 设置第二进度(可用于缓冲显示)
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
@Override // 设置按钮
public void onClick(DialogInterface dialogInterface, int i) { // DialogInterface表示按钮位置
progressDialog.cancel(); // BUTTON_POSITIVE 为最右边
} // BUTTON_NEUTRAL 为在中间
}); // BUTTON_NEGATIVE 为最左边
progressDialog.show(); // 显示ProgressDialog new Thread(){
public void run(){
while(count<=200){
try{
Thread.sleep(100);
progressDialog.incrementProgressBy(1);
}catch(Exception e){ } }
} }.start();
}
}); } }
MainActivity.java
Android开发手记(8) ProgressDialog的使用的更多相关文章
- Android 开发手记一NDK编程实例
在Android上,应用程序的开发,大部分基于Java语言来实现.要使用c或是c++的程序或库,就需要使用NDK来实现.NDK是Native Development Kit的简称.它是一个工具集,集成 ...
- Android开发手记(28) Handler和Looper
Android的消息处理有三个核心类:Looper,Handler和Message.其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道.平 ...
- Android开发手记(24) Log的使用及颜色的更改
在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以用于程序调试,也可以用于产品运营中的事件记录.在Android系统中,提供了简单.便利的LOG机制,开发人员可以方便地使用.本文 ...
- Android开发手记(22) 传感器的使用
Android的传感器主要包括八大传感器,他们分别是:加速度传感器(accelerometer).陀螺仪(gyroscope).方向传感器(orientation).磁力传感器(magnetic fi ...
- Android开发手记(18) 数据存储三 SQLite存储数据
Android为数据存储提供了五种方式: 1.SharedPreferences 2.文件存储 3.SQLite数据库 4.ContentProvider 5.网络存储 SQLite 是以嵌入式为目的 ...
- Android开发手记(17) 数据存储二 文件存储数据
Android为数据存储提供了五种方式: 1.SharedPreferences 2.文件存储 3.SQLite数据库 4.ContentProvider 5.网络存储 本文主要介绍如何使用文件来存储 ...
- Android开发手记(32) 使用摄像头拍照
在Android中,使用摄像头拍照一般有两种方法, 一种是调用系统自带的Camera,另一种是自己写一个摄像的界面. 我们要添加如下权限: <uses-permission android:na ...
- Android开发手记(31) 使用MediaRecorder录音
使用Android手机的时候,有时我们会用到录音功能,本文简单的介绍了如何使用MediaRecorder通过手机自带麦克风进行录音. 首先,既然是录音,我们需要录音和写外存的权限: <uses- ...
- Android开发手记(30) 触摸及手势操作
触摸操作在现在智能手机系统中起到举足轻重的作用,本文将对安卓中的触摸以及一些简单手势的操作进行简单的介绍. 1.触摸 首先是关于触摸的判断,有两种方法可以判断的触摸操作. (1)setOnTouchL ...
随机推荐
- js 点名
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- VISUAL STUDIO 2005连接MYSQL数据库
// mysql.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <string.h> #include &l ...
- Android 数据库读取数据显示优化 Application [6]
Application和Activity,Service一样是android框架的一个系统组件, 当android程序启动时系统会创建一个application对象,用来存储系统的一些信息. 通常我们 ...
- noi 3531 判断整除
3531:判断整除 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 一个给定的正整数序列,在每个数之前都插入+号或-号后计算它们的和.比如序列:1.2.4共有 ...
- 多台web服务器之间共享session
常见的几种方法如下: 1. 写客户端Cookie的方式 当用户登陆成功以后,把网站域名.用户名.密码.token.session有效时间全部采用cookie的形式写入到客户端的cookie里面,如果用 ...
- No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'
运行代码是出现了这个错误,No Entity Framework provider found for the ADO.NET provider with invariant name 'System ...
- spring restful 中文乱码问题
进行如下配置: @RequestMapping( value="/zzs/xgm", produces="application/json;charset=utf-8&q ...
- GNU Make chapter 2 —— Makefile 介绍
Makefile是由一系列的rule规则组成,这些rule都遵循以下形式: target ... : prerequisites ... command ... ... target(目标) 一般来说 ...
- 64位操作系统 注册 capicom.dll
把capicom.dll 放到c:\windows\syswow64目录 以管理员身份运行c:\windows\syswow64\cmd.exe 执行 regsvr32 capicom.dll ...
- 推送消息 相关公司 手机端分享http://mob.com/
信鸽 http://xg.qq.com/xg/pro/ctr_message 云巴 http://yunba.io/usercases/ 极光https://www.jpush.cn/ 手机端分享ht ...