Android中ProgressDialog的简单示例

来源:互联网 发布:java bigdecimal最长度 编辑:程序博客网 时间:2024/05/21 19:36
网上一般对进度条的示例都是如何显示,没有在任务结束如何关闭的文章,参考其他文章经过试验之后把整套进度条显示的简单示例如下: 

建立android工程等工作都略去,Google一下就可以了。 

下面来介绍主要的Activity 

ProgressBarDemo.java 

package com.lveyo.android.demo.progressbar;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.widget.Button;import android.widget.TextView;public class ProgressBarDemo extends Activity {    private TextView statusTextView;private Button beginBtn;private ProgressDialog progressDialog;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        statusTextView = (TextView)findViewById(R.id.status);        beginBtn = (Button)findViewById(R.id.beginBtn);        setListener();    }        /**     * 用Handler来更新UI     */    private Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {//关闭ProgressDialogprogressDialog.dismiss();//更新UIstatusTextView.setText("Completed!");}};    /** * 点击按钮事件listener */    private void setListener(){    beginBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//显示ProgressDialogprogressDialog = ProgressDialog.show(ProgressBarDemo.this, "Loading...", "Please wait...", true, false);//新建线程new Thread(){@Overridepublic void run() {//需要花时间计算的方法Calculation.calculate(4);//向handler发消息handler.sendEmptyMessage(0);}}.start();}});    }    }

Calculation.java 

package com.lveyo.android.demo.progressbar;/** * 示意方法 * @author lveyo * */public class Calculation {public static void calculate(int sleepSeconds){try {Thread.sleep(sleepSeconds * 1000);} catch (Exception e) {// TODO: handle exception}}}

main.xml文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><TextView android:id="@+id/status"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/hello"    /><Button android:id="@+id/beginBtn"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="begin"/></LinearLayout>

在android中,通常我们无法在单独的线程中更新UI,而要在主线程中,这也就是为什么我们要使用 Handler了,当handler收到消息中,它会把它放入到队列中等待执行,通常来说这会很快被执行。 


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我用游戏改变了时间线 学霸文明辅助系统 龙族里的暗裔剑魔 无限进化:我加入了万界聊天群 和女魔头夫人苟在江湖的日子 我在综漫世界推销精灵 我不可能会录这种自述 没人比我更懂禁忌 四合院之飞扬年代 50块上单,只好去LCK打替补 莽荒纪之长生之路 死神:从统治虚圈开始 这位公子深藏不露 神话之门 诸天抽奖:开局段誉巅峰内力 杀手的退休柯学纪实 借神长生:从拐走仇人的道侣开始 暮年修仙的我长生不死 无尽海域,我以养妖求长生 吞噬星空之我躺平了也变强了 跑山人:我的属性加点人生 从九牛二虎开始无敌 高达SEED之前进四 龙族:从道诡异仙归来的路明非 穿越凡人我能无限升级 超神:无限知识,我带文明飞升! 重回八二做个好人 从斗罗开始:杀戮之都遇比比东 秦时:从监禁焰灵姬开始 重生之四合院的日子 权游之凛冬龙主 美利坚:我就是华尔街大公牛 我的宠兽词条过于离谱 末世诡海:全民加点孤艇求生 超神:开局奖励修罗铠甲 我在火影苟到无敌 我,巨星,劝退粉丝 身为草神:我无敌,你随意 娱乐:让你录综艺,你成影帝了? 关于我成了祖国人这档事 港综从神诡秘法开始