ProgressDialog 跟AlertDialog用法差不多,不同的是:ProgressDialog 显示的是一种"加载中"的效果,android 中 ProgressDialog 必须要在后台程序运行完毕前 使用dismiss()方法来关闭取得焦点(focus)的对话框,否则程序会陷入死循环.

试用:

package com.app.progressdialogtest;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection; import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.Menu;
import android.view.Window;
import android.widget.ImageView;
import android.widget.Toast; public class MainActivity extends Activity {
private ProgressDialog dialog = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 1、不能将Activity布局设计为无标题,并在setContentView()之前设置一下标题布局形式:
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.activity_main);
// setProgressBarIndeterminateVisibility(true);
dialog = new ProgressDialog(this);
// dialog =
// ProgressDialog.show(getApplicationContext(),"请等待","网络加载中...",false);
// dialog.setTitle("请等待..");
dialog.setMessage("网络给力加载中...");
// dialog.setIndeterminate(indeterminate);
dialog.setCancelable(false);
// dialog.setOnCancelListener(cancelListener);
dialog.show();
new Thread(new Runnable() {
@Override
public void run() {
try {
getConnetction();
Message msg = new Message();
handler.sendMessage(msg);
// setProgressBarIndeterminateVisibility(false); } catch (Exception e) {
e.printStackTrace();
}
}
}).start(); }
Handler handler = new Handler() {
public void handleMessage(Message msg) {
// getConnetction();
imageView.setImageBitmap(bitmap);
dialog.dismiss();
};
};
Bitmap bitmap;
ImageView imageView;
private void getConnetction() {
String path = "http://www.baidu.com/img/baidu_jgylogo3.gif";
Log.d("xxxxxx", "-");
try {
URL url = new URL(path);
URLConnection connection = url.openConnection();
InputStream inputStream = connection.getInputStream();
bitmap = BitmapFactory.decodeStream(inputStream);
imageView = (ImageView) findViewById(R.id.imageView1);
// imageView.setImageBitmap(bitmap);
} catch (MalformedURLException e) {
Toast.makeText(getApplicationContext(), path + "error", 0).show();
e.printStackTrace();
} catch (IOException e) {
Toast.makeText(getApplicationContext(), path + "connection error",
0).show();
e.printStackTrace();
}
}
}

简单应用:

在联网获取数据时,用一个进度条提示用户正在加载数据,。由于Android的界面更新只能通过自己的UI线程进行操作,所以我们需要用到Handler在进行更新界面的操作。

    1、声明变量

    private Handler handler = new Handler();

    private ProgressDialog progressDialog = null;

  2、在开始进行网络连接时显示进度条对话框

  progressDialog = ProgressDialog.show(MyActivity.this, "请稍等...", "获取数据中...", true);

  3、在handler.post中进行界面更新

  public void setListAdapter(){

  handler.post(new Runnable() {

  public void run() {

   //将获取到的数据更新到列表中

   MyListView.setAdapter(saImageItems);

    }

   }

   });

4、开个新的线程进行网络连接获取数据

    new Thread(new Runnable(){  

  @Override

    public void run() {

    // TODO Auto-generated method stub

    //向服务器请求数据

    mapList=MyAPI.getAllDatas();

    setListAdapter(mapList);

    //更新完列表数据,则关闭对话框

    progressDialog.dismiss();

    }}).start();

5.整个过程就这样了

android progressdialog 对话框试用实例的更多相关文章

  1. Android中制作自定义dialog对话框的实例

    http://www.jb51.net/article/83319.htm   这篇文章主要介绍了Android中制作自定义dialog对话框的实例分享,安卓自带的Dialog显然不够用,因而我们要继 ...

  2. android用户界面详尽教程实例

    android用户界面详尽教程实例 1.android用户界面之AlarmManager教程实例汇总http://www.apkbus.com/android-48405-1-1.html2.andr ...

  3. Android EventBus 3.0 实例使用详解

    EventBus的使用和原理在网上有很多的博客了,其中泓洋大哥和启舰写的非常非常棒,我也是跟着他们的博客学会的EventBus,因为是第一次接触并使用EventBus,所以我写的更多是如何使用,源码解 ...

  4. 在程序加载过程中显示ProgressDialog 对话框

    private ProgressDialog mProgressDlg = null; @Override protected void onCreate(Bundle savedInstanceSt ...

  5. Android系统对话框——自定义关闭

    Android系统对话框--自定义关闭 Dialog是我们在项目中经常用到的,5.x以后的Dialog也很好看,很安卓风,Android也给我们提供了新的包,低版本可以显示一样的效果.我们在使用的导入 ...

  6. Android系统对话框

    Android系统对话框 效果图 2个按钮的对话框 3个按钮的对话框 自定义View的对话框 单选对话框 多选对话框 列表框 Code XML <?xml version="1.0&q ...

  7. android用户界面的教程实例---转自qianqianlianmeng的博客

    1.android用户界面之AlarmManager教程实例汇总http://www.apkbus.com/android-48405-1-1.html2.android用户界面之文本编辑教程实例汇总 ...

  8. Android微信分享功能实例+demo

    Android微信分享功能实例 1 微信开放平台注册 2 获得appId,添加到程序中,并运行程序 3 使用应用签名apk生成签名,添加到微信开放平台应用签名,完成注册 4 测试分享功能. 有问题请留 ...

  9. Android Dialog对话框的七种形式的使用

    参考资料:http://www.oschina.net/question/54100_32486 注:代码进行了整理 在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询 ...

随机推荐

  1. 把一个List<T>的数据复制至另一个List<T>

    把一个数据集List<T>复制至到另一个数据集List<T>. 方法一,可以使用循环,然后把每一个T添加至另一个集合中去: public void ListDemo() { , ...

  2. C# 随机生成姓名的方法

    没什么好说的,因为用的上,所以作此记录: 代码如下: public class indexModel { private object O = new object(); public List< ...

  3. CF 799B T-shirt buying

    一道超级水的练习STL的题目 题目大意:有\(n\)件T恤,每件T恤都分别有价格(每件衣服的价格不重复).前面的颜色.背部的颜色三种属性.接下来有\(m\)个人每个人都有一种喜欢的颜色,他们按先后顺序 ...

  4. 新人入坑Redis必会的吐血总结

    新人入坑Redis必会的吐血总结 一.什么是Redis Redis是一个使用C语言开发的开源的高性能的key-value存储系统,我们可以把它近似理解为Java Map.简单来讲,Redis是一种NO ...

  5. Python进阶量化交易专栏场外篇7- 装饰器计算代码时间

    欢迎大家订阅<教你用 Python 进阶量化交易>专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前已推出如下扩展篇: 在第一篇 ...

  6. Natural Language Generation/Abstractive Summarization

    调研目的: 了解生成式文本摘要的常用技术和当前的发展趋势,明确当前项目有什么样的摘要需求,判断现有技术能否用于满足当前的需求,进一步明确毕业设计方向及其可行性 调研方向: 项目中需要用到摘要的地方以及 ...

  7. Linux内核及分析 第七周 可执行程序的装载

    实验步骤 1. 更新menu,用test.c覆盖test_exec.c 2. 把init 和 hello 放到了rootfs.img目录下,执行exec命令的时候自动加载了hello程序 3. 执行e ...

  8. java-过滤器、拦截器

    1.基础知识 1.1面向对象编程(OOP).面向切面编程(AOP) 面向对象编程: 将需求功能划分为不同的.相对独立的和封装良好的类,使他们有属于自己的行为,依靠继承和多态等来定义彼此的关系. 面向切 ...

  9. 个人项目Individual Project:n皇后问题

     源码的github链接: https://github.com/luhan420/test/tree/master 1.需求分析 在本次的课程设计中,用到的知识点主要有:类.函数.选择结构里的条件语 ...

  10. Github知识小结

    软件:计算机运行所需要的各种程序和数据的总成,包括操作系统,汇编语言,编译,程序,数据库,文字编辑和维护使用手册等. 软件的特性:(1)软件产品的主要生产是脑力劳动,还没有摆脱手工开发方式(2)软件是 ...