博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ProgressDialog的简单应用,等待提示
阅读量:7294 次
发布时间:2019-06-30

本文共 1672 字,大约阅读时间需要 5 分钟。

hot3.png

在应用中经常会用到一些费时的操作,需要用户进行等待,比如加载网页内容……

这时候就需要一个提示来告诉用户程序正在执行,并没有假死或者真死……囧……

而ProgressBar、ProgressDialog等就是专门干这个的。

以ProgressDialog为例,一般的使用它步骤为:在执行耗时间的操作之前弹出ProgressDialog提示用户,然后开一个新线程,在新线程里执行耗时的操作,执行完毕之后通知主程序将ProgressDialog结束。

以下是一个demo,很简单的用法:

package com.android.ui;import android.app.Activity;import android.app.ProgressDialog;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {	private Button button;	private ProgressDialog pd;	@Override	public void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);		button = (Button) findViewById(R.id.button1);		button.setOnClickListener(new OnClickListener() {			@Override			public void onClick(View v) {				/* 显示ProgressDialog */				pd = ProgressDialog.show(MainActivity.this, "标题", "加载中,请稍后……");				/* 开启一个新线程,在新线程里执行耗时的方法 */				new Thread(new Runnable() {					@Override					public void run() {						spandTimeMethod();// 耗时的方法						handler.sendEmptyMessage(0);// 执行耗时的方法之后发送消给handler					}				}).start();			}		});	}	private void spandTimeMethod() {		try {			Thread.sleep(5000);		} catch (InterruptedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}	Handler handler = new Handler() {		@Override		public void handleMessage(Message msg) {// handler接收到消息后就会执行此方法			pd.dismiss();// 关闭ProgressDialog		}	};}

main.xml中只有一个Button,就不贴了,程序应该很好理解,点击按钮后弹出ProgressDialog,在新线程中执行耗时操作(Thread.sleep(5000);),执行完毕之后通知handler,结束ProgressDialog。

运行效果如下:

094455_h1kd_2008084.gif

转载于:https://my.oschina.net/u/2008084/blog/525606

你可能感兴趣的文章
Spring加载properties文件的两种方式
查看>>
(转) 输入码、区位码、国标码与机内码
查看>>
IE10标准模式不支持HTC (Html Components) ,升级重写Htc原有代码之二: 事件
查看>>
python笔记-字符串连接
查看>>
性能测试知多少---测试环境搭建
查看>>
python进阶学习笔记(三)
查看>>
Django快速开发之投票系统
查看>>
微信小程序组件minui在mac系统的使用注意事项
查看>>
用cxf生成webservice的java客户端代码
查看>>
sql存储过程中的整形变量和字符串变量
查看>>
WebService 调用三种方法
查看>>
自定义web框架
查看>>
java集合架构(二)——Map
查看>>
课堂实验
查看>>
The King’s Ups and Downs
查看>>
Python 隔离沙箱 virtualenv
查看>>
JRadioButton 实现图片切换
查看>>
图片和字符串相互转换
查看>>
动态规划,Dijkstra算法,A*算法的比较
查看>>
[笔记]sql server 单用户切换
查看>>