Handler修改子线程UI

匿名 (未验证) 提交于 2019-12-03 00:30:01

给出了个小栗子

public class MainActivity extends AppCompatActivity implements View.OnClickListener {      private TextView show;      public static final int UPDATE_TEXT = 1;      private Handler handler = new Handler() {         @Override         public void handleMessage(Message msg) {             //接收,判断,处理消息             switch (msg.what) {                 case UPDATE_TEXT:                     show.setText("更改UI");                     break;                 default:                     break;             }         }     };      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         //一个Textview,修改文字来达到模拟更改界面UI的效果         show = (TextView) findViewById(R.id.tv_show);     }      @Override     public void onClick(View v) {         switch (v.getId()) {             case R.id.tv_show:                 //开启线程(这里是模拟在线程里要修改UI的情况)                 new Thread(new Runnable() {                     @Override                     public void run() {                         //定义一个Message,可以发送给Handler                         Message myMessage = new Message();                         //用户定义的消息代码,以便接收者能够识别该消息的内容。                         myMessage.what = UPDATE_TEXT;                         //把myMessage放到消息队列的末尾,它将在handleMessage(Message)中接收                         handler.sendMessage(myMessage);                     }                 });             default:                 break;         }     } }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!