在联网获取数据时,用一个进度条提示用户正在加载数据,以下讲一下我是如何实现这种效果的。
由于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();
分享到:
相关推荐
android网络加载显示进度条 ProgressDialog+Thread应用
Android Async异步操作实例---加载网络图片,实现进度条的更新
Android 加载网页进度条.zip
我们在加载网络图片时候,是不是需要显示一个进度条呢?一个圆圈进度条,中间有带数字显示当前加载进度,就会显得很人性化。
实现webview加载时显示进度条,类似微信公众号文章加载。
因为项目需要,所以自己写了一个自定义的加载进度条,还有一个圆形的进度条,可以显示当前加载的进度
高仿IOS加载数据时圆形的进度条
android集成MUPDF来加载显示网络PDF资源,在自己应用内打开,非调用外部。 带加载进度条。
Android RadarView漂亮的加载进度条可实现自定义视图RadarView看起来像一个搜索雷达。通过 new Thread()方式来实现循环滚动搜索,在根据角度设置starModel.setAlpha()。
Android 绘制游戏主菜单与进度条加载进度~~~~~~~~~~~~~~
安卓Android源码——加载网页进度条.zip
Android应用源码之加载网页进度条.zip
android圆形加载进度条demo,拿来直接用
2套代码,一套通知栏几种方法,另一条显示进度条,导入eclipse直接可以用
安卓自定义View之加载进度条
我看了一下网上加载进度条的方式,几乎都是自定义继承imageView画进度,这样扩展性不好,比如有时候我要用到手势缩放。但这个开源并不是,采用drawable注入imageView的方式,可以支持Android四大图片框架和其他的...