论__AlertDialog自定义布局回调修改的正确方式
本文由 Luzhuo 编写,请尊重个人劳动成果,转发请保留该信息.
原文: http://blog.csdn.net/Rozol/article/details/50441057
微博: http://weibo.com/u/2524456400
这几天写了个应用,自定义了
AlertDialog
布局,加入了TextView
和进度条展示,但是不管怎么调,Dialog
就是不显示出来,即时显示出来也不更新,只在程序执行完了才更新.
于是没辙了,换成Android自带的ProgressDialog
试试,结果还是老样子.(也是要么不显示,即时显示了也不更新,只在程序执行完了才更新.)
于是亲自动手写个Demo看看到底是什么问题.(反复折腾,终于折腾出结果来了,先下结论吧.)
这篇文章没有插图,下面有Github的链接,下载里面的apk就能很清楚的知道这篇文章在讲什么啦!!!
结论
- 一定要在辅助线程里执行的回调才能修改Dialog的界面; (第1,2的案例)
- 在ui线程里执行的回调不能修改Dialog的界面.(准确的说:能修改,但是不是你想要的效果) (第3,4的案例)
详细分析
先看
MainActivity
里的代码:public class MainActivity extends Activity implements OnClickListener { // ... 省略 private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case Start: dialog.show();// 显示 Log.i(TAG, "start"); break; case Back: textview.setText((String)m