开发者社区> 问答> 正文

关于更新UI的问题,怎么更新当前的UI? 400 报错

关于更新UI的问题,怎么更新当前的UI? 400 报错

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

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

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

展开
收起
爱吃鱼的程序员 2020-06-05 12:50:05 505 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    为啥要直接更新啊,发通知啊######(⊙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来传递?你直接操作的话,其他状态你没办法写了,比如失败,错误,其他.######嗯,多谢回答,我会继续学习哒
    2020-06-05 12:50:24
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用TensorFlow搭建智能开发系统自劢生成App UI代码 立即下载
Fusion Design - 企业级UI解决方案揭秘 立即下载
使用TensorFlow搭建智能开发系统自动生成App UI 立即下载