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. Linux查看特定端口是否被占用并kill掉相关进程

    今天在搭建Zookeeper集群的时候,需要频繁启动zookeeper,但是启动的时候,有时会提示下列错误信息: zookeeper需要的地址已经被占用了,其实是因为上一次的zookeeper没有关闭 ...

  2. 《Head First 设计模式》例子的C++实现(2 观察者模式)

    最近在学习设计模式,用的是 <Head First 设计模式>这本书.感觉这本书写的还是很不错的,深入浅出的介绍了各种常用的设计模式.唯一有点不方便的地方是这本书的例子全都是用的 Java ...

  3. OC与JS的交互(iOS与H5混编)

    大神总结WKWebView的坑:https://mp.weixin.qq.com/s/rhYKLIbXOsUJC_n6dt9UfA 在开发过程中,经常会出现需要iOS移动端与H5混编的使用场景. iO ...

  4. 2016.3.30 OneZero站立会议

    会议时间:2016年3月30日  13:00~13:20 会议成员:冉华,张敏,王巍,夏一鸣. 会议目的:汇报前一天工作,全体成员评论,确定会议内容或分配下一步任务. 会议内容: 1.汇报头一天工作情 ...

  5. 代码规范与复审2——个人博客作业week

    一.关于编程规范的重要性论证 1.不支持. 1)编程规范有利于自己提高编程效率和编程质量.编码是程序员的职责,一个好的信息技术产品必然有高质量的代码,高质量的代码首先 一点它必须遵守某种编程规范.如果 ...

  6. 《Linux内核设计与分析》第四章读书笔记

    <内核设计与实现>第四章读书笔记 第四章:进程调度 进程(操作系统)程序的运行态表现形式. 进程调度程序,它是确保进程能有效工作的一个内核子系统. 调度程序负责决定将哪个进程投入运行,何时 ...

  7. idea使用优化

    一.idea设置目录说明 1.bin目录包含我们的启动文件.虚拟机配置信息和idea属性信息等 2.help目录:帮助文档 3.jre64 : idea自带的jre环境 4.lib:idea所依赖的类 ...

  8. 5.1 四则运算单元测试j

    由于上个星期请假没上课,这个星期回来才知道作业,时间比较赶,个人能力又不足,作业质量不是很好 Calculator.java import java.util.Scanner; public clas ...

  9. 开发中CollectionUtils处理集合

    1.org.apache.commons.collections.CollectionUtils; 使用这个工具类,帮我们处理一些集合的操作,非常方便 //取并集public void testUni ...

  10. shell脚本--函数

    shell的函数和Javacript和php的函数声明一样,只不过shell在调用函数的时候,只需要写函数名就可以调用函数,注意不要在函数名后面加括号 创建并使用函数 #!/bin/bash #文件名 ...