• Android Handler之Message传递参数


    最近发现Message,发送消息可以传递参数,这个思路很好,所以写了一个例子,点击屏幕,给Activity发送一个消息,传递两个参数,并把这个activity销毁掉!

    程序打开界面:

    点击屏幕,销毁activity弹出Toast:

    MainActivity

        package com.cn.Android;  
          
        import android.app.Activity;  
        import android.os.Bundle;  
        import android.os.Handler;  
        import android.os.Message;  
        import android.widget.Toast;  
          
        public class MainActivity extends Activity {  
          
            final static int CANSHU = 1;  
              
            public Handler mHandler=new Handler(){  
                public void handleMessage(Message msg) {  
                switch(msg.what){  
                    case CANSHU :   String str1 = msg.getData().getString("text1");//接受msg传递过来的参数   
                            String str2 = msg.getData().getString("text2");//接受msg传递过来的参数   
                            initFinishMainActivity(str1, str2);  
                            break;  
                        default: break;  
                    }  
                }     
            };  
              
            @Override  
            public void onCreate(Bundle savedInstanceState) {  
                super.onCreate(savedInstanceState);  
                InitMainActivity();  
            }  
              
            public void InitMainActivity()  
            {  
                setContentView(new MainActivityView(this,this));  
            }  
              
            public void initFinishMainActivity(String str1, String str2)  
            {  
                Toast.makeText(MainActivity.this, str1+str2, Toast.LENGTH_LONG).show();  
                finish();  
            }  
        }  

    MainActivityView

        package com.cn.android;  
          
        import android.content.Context;  
        import android.graphics.Bitmap;  
        import android.graphics.BitmapFactory;  
        import android.graphics.Canvas;  
        import android.graphics.Rect;  
        import android.os.Bundle;  
        import android.os.Message;  
        import android.view.MotionEvent;  
        import android.view.View;  
          
        public class MainActivityView extends View{  
          
            private MainActivity activity;  
            private Context context;  
            private Bitmap m_Bitmap;  
              
            public MainActivityView(Context context, MainActivity activity) {  
                super(context);  
                this.activity = activity;  
                this.context = context;  
                initBitmap();  
            }  
              
            public void initBitmap()  
            {  
                m_Bitmap = BitmapFactory.decodeResource(this.getResources(),R.drawable.bg);  
            }  
          
            @Override  
            public void onDraw(Canvas canvas) {  
                canvas.drawBitmap(m_Bitmap, 0, 0, null);  
                  
            }  
          
            @Override  
            public boolean onTouchEvent(MotionEvent event) {  
                int x = (int) event.getX();  
                int y = (int) event.getY();  
                Rect rect;  
                rect = new Rect(0,0,320,480);  
                  
                if(rect.contains(x,y))  
                {  
                    Message msg = new Message();  
                    msg.what = MainActivity.CANSHU;  
                    Bundle bundle = new Bundle();    
                              bundle.putString("text1","大明的消息传递参数的例子!");  //往Bundle中存放数据   
                                 bundle.putString("text2","Time:2011-09-05");  //往Bundle中put数据   
                                 msg.setData(bundle);//mes利用Bundle传递数据   
                                 activity.mHandler.sendMessage(msg);//用activity中的handler发送消息   
                }  
                  
                return super.onTouchEvent(event);  
            }  
              
              
        }  
  • 相关阅读:
    解决英文版Windows中软件乱码问题
    退出程序时进行确认提醒
    Dreamweaver插件,FireFox插件名称集合
    网页炸弹根本就不算技术
    虚拟格式化硬盘
    当前上下文中不存在名称“Server”的原因
    ASP脚本在Webshell下的安全解决方案
    ASP.NET关于http/1.1 500 Server Error 的解决办法
    在网页文件中插入QQ强制聊天
    删除visual studio最近打开的项目列表
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4257791.html
Copyright © 2020-2023  润新知