关于更新UI的问题,怎么更新当前的UI? 400 报错
今天看了一集mars老师的视频,我看见他写了一个按钮,点击一下就setText("xxxx"); 点击一下就直接更新了UI(这个叫更新UI么?)
而我上次通过一个线程获取网络上的数据,把返回的结果setText(); 就出错了,大致的意思是:只有主线程才能更新UI。
我就很疑惑了,是不是只有在本类中,比如MainActivity.java中才能更新其对应的activity_main.xml,而如果开辟了新的线程,在新的线程中就无法更新当前的activity,比如网络上获取数据。我发现可以用intent跳转来实现
为啥要直接更新啊,发通知啊######(⊙o⊙)哦,还没学到“通知”,但貌似知道一个叫 handler的东西######public Handler handler = new Handler();
Runnable updateResults = new Runnable() {
public void run() {
updateUI();
}
};
public void updateUI(){
main.showResultDialog(msg);//msg是线程类中的一个变量
}
在调用业务逻辑完成后,调用handler.post(updateResults);
######为什么不用message来传递?你直接操作的话,其他状态你没办法写了,比如失败,错误,其他.######嗯,多谢回答,我会继续学习哒版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。