listview显示之前如何显示dialog

gongchengok 2011-11-13 02:23:33
比方用户在进入一个页面,这个页面是listview的形式。显示的内容是重网上获取的数据,在获取完数据之前显示dialog提示正在下载,怎么搞?
...全文
299 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingang1359 2011-11-14
  • 打赏
  • 举报
回复
强烈建议不要在UI线程执行耗时操作,同时adapter的getView里面不要随便new对象,前者会造成ANR,后者影响性能。
lingang1359 2011-11-14
  • 打赏
  • 举报
回复
用AsyncTask不是很简单就可以解决么?里面提供了几个很好用的重写方法,onPreExecute(),线程之前需要做的动作,这里你只需要new 一个ProgressDialog进行正在下载的弹出框显示,然后再doInBackground()方法里面做耗时操作。onProgressUpdate里面写耗时操作出现异常时的处理代码,onPostExecute()里面写耗时操作正常执行完以后的代码,这里你就将ProgressDialog给他dismiss掉然后发个Handler消息过去,UI界面接收到以后加载listView数据就OK了。感觉没啥难的
A一剑飞鸿 2011-11-14
  • 打赏
  • 举报
回复

在Activity中new出来List,然后加上数据,再用AlertDialog.Builder .setView进去,
lingang1359 2011-11-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yanjichao2010 的回复:]
1.showProgress
2.new THread (弄listview的数据 , sendMessage)
3.handlemessage(适配器刷一下 ,closeProgress)
[/Quote]

提示一下,thread里面不能new Handler哟
yanjichao2010 2011-11-14
  • 打赏
  • 举报
回复
1.showProgress
2.new THread (弄listview的数据 , sendMessage)
3.handlemessage(适配器刷一下 ,closeProgress)
毛豆先生Max 2011-11-13
  • 打赏
  • 举报
回复
黑屏?应该是GUI主线程阻塞了吧
android的UI组件是非线程安全,对这种单线程模式,切记两件事:
1.不要阻塞GUI主线程
2.不要跨线程操作GUI线程的组件
所以onCreate()方法中的程序不能有耗时过长的操作,以免阻塞GUI。如果有这种操作,建议新开线程完成这些操作,然后通过Handler在线程之间通信。
所以dialog并不是在获取完数据才显示的,而是你的getData()操作阻塞你的GUI主线程
强烈建议把getData()放入一个线程之中

gongchengok 2011-11-13
  • 打赏
  • 举报
回复
我现在没有开启一个线程,先做个测试
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
listView = new ListView(this);


Mydialog.show();
getData();


// 利用系统的layout显示一项
listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, data));
setContentView(listView);

Mydialog.dismiss();
}但是没有显示diaog 中间显示的是黑屏一段时间,说明正在下载。。我把dismiss去掉后,发现dialog是在获取完数据才显示的。这个怎么回事?谢谢。
毛豆先生Max 2011-11-13
  • 打赏
  • 举报
回复
推荐一种做法:
这个activity初始化的时候,做两件事情
1.显示一个dialog,提示正在下载
2.开启一个线程,从网络上获取数据
等到数据获取完后,可用handler传递消息,dismiss() dialog、show listview

80,354

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧