栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android开发中ProgressDialog简单用法示例

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android开发中ProgressDialog简单用法示例

本文实例讲述了Android开发中ProgressDialog简单用法。分享给大家供大家参考,具体如下:

网上一般对进度条的示例都是如何显示,没有在任务结束如何关闭的文章,参考其他文章经过试验之后把整套进度条显示的简单示例如下:

建立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();
  }
  
  private Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
      //关闭ProgressDialog
      progressDialog.dismiss();
      //更新UI
      statusTextView.setText("Completed!");
    }};
  
  private void setListener(){
    beginBtn.setonClickListener(new View.onClickListener() {
      @Override
      public void onClick(View v) {
 //显示ProgressDialog
 progressDialog = ProgressDialog.show(ProgressBarDemo.this, "Loading...", "Please wait...", true, false);
 //新建线程
 new Thread(){
   @Override
   public void run() {
     //需要花时间计算的方法
     Calculation.calculate(4);
     //向handler发消息
     handler.sendEmptyMessage(0);
   }}.start();
      }
    });
  }
}

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();
  }
  
  private Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
      //关闭ProgressDialog
      progressDialog.dismiss();
      //更新UI
      statusTextView.setText("Completed!");
    }};
  
  private void setListener(){
    beginBtn.setonClickListener(new View.onClickListener() {
      @Override
      public void onClick(View v) {
 //显示ProgressDialog
 progressDialog = ProgressDialog.show(ProgressBarDemo.this, "Loading...", "Please wait...", true, false);
 //新建线程
 new Thread(){
   @Override
   public void run() {
     //需要花时间计算的方法
     Calculation.calculate(4);
     //向handler发消息
     handler.sendEmptyMessage(0);
   }}.start();
      }
    });
  }
}

Calculation.java

package com.lveyo.android.demo.progressbar;

public class Calculation {
  public static void calculate(int sleepSeconds){
    try {
      Thread.sleep(sleepSeconds * 1000);
    } catch (Exception e) {
      // TODO: handle exception
    }
  }
}

package com.lveyo.android.demo.progressbar;

public class Calculation {
  public static void calculate(int sleepSeconds){
    try {
      Thread.sleep(sleepSeconds * 1000);
    } catch (Exception e) {
      // TODO: handle exception
    }
  }
}

main.xml文件







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

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/157537.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号