Android网络加载时显示进度条(转)

在联网获取数据时,用一个进度条提示用户正在加载数据,以下讲一下我是如何实现这种效果的。
  
  由于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();
整个过程就这样完成了,下面是效果图:

  还有另外一种进度条的提示,是在对话框的标题上有圆形进度条进行提示。
  
  1、不能将Activity布局设计为无标题;
  并在setContentView()之前设置一下标题布局形式:
  requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
  2、在连接网络前,设置进度条为可视状态
setProgressBarIndeterminateVisibility(true);
  3、开一个新的线程向服务器请求数据,获取数据后,将进度条设为不可视状态
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
try {
todosomething();
setProgressBarIndeterminateVisibility(false);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}).start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值