• Handler发送Message


        用Handler更新UI

     1 package activity.cyq.handlermessage;
     2 
     3 import android.content.res.Resources;
     4 import android.graphics.Bitmap;
     5 import android.graphics.BitmapFactory;
     6 import android.os.Handler;
     7 import android.os.Message;
     8 import android.support.v7.app.AppCompatActivity;
     9 import android.os.Bundle;
    10 import android.widget.Button;
    11 import android.widget.ImageView;
    12 import android.widget.TextView;
    13 import android.widget.Toast;
    14 
    15 
    16 public class MainActivity extends AppCompatActivity {
    17     private TextView textView;
    18     private Button button;
    19     private ImageView imageView;
    20 
    21     private int[] iamgeId = new int[]{R.drawable.aaa1, R.drawable.aaa3, R.drawable.image1};
    22 
    23 
    24     private Handler handler = new Handler(new Handler.Callback() {
    25         @Override
    26         public boolean handleMessage(Message msg) {
    27             Toast.makeText(MainActivity.this, "这是Handler的回掉函数", Toast.LENGTH_SHORT).show();
    28             /*如果返回true则终止handler()的执行 ,可用于对message内容进行判断,今儿决定是否继续对messsage的处理*/
    29             return false;
    30         }
    31     }) {
    32         @Override
    33         public void handleMessage(Message msg) {
    34             super.handleMessage(msg);
    35             textView.setText(msg.arg1 + "" + msg.arg2);
    36             imageView.setImageBitmap((Bitmap) msg.obj);
    37         }
    38     };
    39 
    40     @Override
    41     protected void onCreate(Bundle savedInstanceState) {
    42         super.onCreate(savedInstanceState);
    43         setContentView(R.layout.activity_main);
    44 
    45         textView = (TextView) findViewById(R.id.textView);
    46         button = (Button) findViewById(R.id.button);
    47         imageView = (ImageView) findViewById(R.id.imageView);
    48         /*通过handler.post(Runnable)方法根性UI*/
    49         new Thread() {
    50             @Override
    51             public void run() {
    52                 super.run();
    53                 /*创建一个Bitmap对象*/
    54                 Resources res = getResources();
    55                 Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.aaa1);
    56                 /*发送Message*/
    57                 Message message = new Message();
    58                 message.arg1 = 123;
    59                 message.arg2 = 245;
    60                 message.obj = bmp;
    61                 /* arg1 arg2 是int类型数据 obj为object类型数据 */
    62                 handler.sendMessage(message);
    63             }
    64         }.start();
    65 
    66 
    67     }
    68 
    69 
    70 }
  • 相关阅读:
    Func<T>、Action<T> 的区别于说明
    Invoke()/BeginInvoke()区别
    C# Linq处理list数据
    C# 的三种序列化方法
    P3368 【模板】树状数组 2
    P2058 海港
    2019.6.24 校内测试 NOIP模拟 Day 2 分析+题解
    2019.6.20 校内测试 NOIP模拟 Day 1 分析+题解
    2019.6.18 校内测试 分析+题解
    P1310 表达式的值
  • 原文地址:https://www.cnblogs.com/chenyangqi/p/4746604.html
Copyright © 2020-2023  润新知