关于更新UI的问题,怎么更新当前的UI

Kross 发布于 2013/05/07 18:30
阅读 391
收藏 0

今天看了一集mars老师的视频,我看见他写了一个按钮,点击一下就setText("xxxx"); 点击一下就直接更新了UI(这个叫更新UI么?)

而我上次通过一个线程获取网络上的数据,把返回的结果setText(); 就出错了,大致的意思是:只有主线程才能更新UI。

我就很疑惑了,是不是只有在本类中,比如MainActivity.java中才能更新其对应的activity_main.xml,而如果开辟了新的线程,在新的线程中就无法更新当前的activity,比如网络上获取数据。我发现可以用intent跳转来实现

加载中
0
平安北京
为啥要直接更新啊,发通知啊
Kross
Kross
(⊙o⊙)哦,还没学到“通知”,但貌似知道一个叫 handler的东西
0
平安北京
public Handler handler = new Handler();
Runnable updateResults = new Runnable() {
public void run() {
updateUI();
}
};
public void updateUI(){
main.showResultDialog(msg);//msg是线程类中的一个变量

}

在调用业务逻辑完成后,调用handler.post(updateResults);

loyal
loyal
为什么不用message来传递?你直接操作的话,其他状态你没办法写了,比如失败,错误,其他.
Kross
Kross
嗯,多谢回答,我会继续学习哒
返回顶部
顶部