Android Fragment UI 刷新问题

我在fragment 建一个 handler,然后new一个线程传数据回来,然后用handler.post(),然后将数据更新fragment的textview的text,但是没有变,不知有没好心人能不能帮我看看这思路有没有问题

3个回答

你要用handler把带数据的message发出去,handler来自fragment,fragment中要有处理消息的方法

 mHandler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                switch (msg.what) {
                    case 0:
                        //TODO 更新UI
                        //如果有数据
                        System.out.println("msg = " + msg.obj.toString());
                        break;
                    default:
                        break;
                }
            }
        };

        new Thread(){
            @Override
            public void run() {
                super.run();
                //TODO dosomething
                mHandler.sendEmptyMessage(0);
                //要是带数据的话
                //mHandler.obtainMessage(0,"数据").sendToTarget();

            }
        }.start();

Fragment里处理

Handler handler = new Handler(){
        public void handleMessage(android.os.Message msg) {
        // do something
        }
    }; 

线程里发消息

 Message msg = handler.obtainMessage();
                        msg.obj = 你的数据;
                        handler.sendMessage(msg);
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问