Android中Message传递参数

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

程序打开界面:

 

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

 

看代码:

MainActivity。java类:

1.package com.cn.Android; 
2. 
3.import android.app.Activity;  4.import android.os.Bundle;  5.import android.os.Handler;  6.import android.os.Message;  7.import android.widget.Toast;  8. 
9.public class MainActivity extends Activity {  10. 
11.    final static int CANSHU = 1;  12.     
13.    public Handler mHandler=new Handler(){  14.        public void handleMessage(Message msg) {  15.        switch(msg.what){  16.            case CANSHU :   String str1 = msg.getData().getString("text1");//接受msg传递过来的参数   17.                    String str2 = msg.getData().getString("text2");//接受msg传递过来的参数   18.                    initFinishMainActivity(str1, str2); 
19.                              break;  20.            default         : break;  21.            } 
22.        }    
23.    }; 
24.     
25.    @Override  26.    public void onCreate(Bundle savedInstanceState) {  27.        super.onCreate(savedInstanceState);  28.        InitMainActivity(); 
29.    } 
30.     
31.    public void InitMainActivity()  32.    { 
33.        setContentView(new MainActivityView(this,this));  34.    } 
35.     
36.    public void initFinishMainActivity(String str1, String str2)  37.    { 
38.        Toast.makeText(MainActivity.this, str1+str2, Toast.LENGTH_LONG).show();  39.        finish(); 
40.    } 
41.} 
MainActivityView。java类:

1.package com.cn.android; 
2. 
3.import android.content.Context;  4.import android.graphics.Bitmap;  5.import android.graphics.BitmapFactory;  6.import android.graphics.Canvas;  7.import android.graphics.Rect;  8.import android.os.Bundle;  9.import android.os.Message;  10.import android.view.MotionEvent;  11.import android.view.View;  12. 
13.public class MainActivityView extends View{  14. 
15.    private MainActivity activity;  16.    private Context context;  17.    private Bitmap m_Bitmap;  18.     
19.    public MainActivityView(Context context, MainActivity activity) {  20.        super(context);  21.        this.activity = activity;  22.        this.context = context;  23.        initBitmap(); 
24.    } 
25.     
26.    public void initBitmap()  27.    { 
28.        m_Bitmap = BitmapFactory.decodeResource(this.getResources(),R.drawable.bg);  29.    } 
30. 
31.    @Override  32.    public void onDraw(Canvas canvas) {  33.        canvas.drawBitmap(m_Bitmap, 0, 0, null);  34.         
35.    } 
36. 
37.    @Override  38.    public boolean onTouchEvent(MotionEvent event) {  39.        int x = (int) event.getX();  40.        int y = (int) event.getY();  41.        Rect rect; 
42.        rect = new Rect(0,0,320,480);  43.         
44.        if(rect.contains(x,y))  45.        { 
46.            Message msg = new Message();  47.            msg.what = MainActivity.CANSHU; 
48.            Bundle bundle = new Bundle();    49.                      bundle.putString("text1","大明的消息传递参数的例子!");  //往Bundle中存放数据   50.                         bundle.putString("text2","Time:2011-09-05");  //往Bundle中put数据   51.                         msg.setData(bundle);//mes利用Bundle传递数据   52.                         activity.mHandler.sendMessage(msg);//用activity中的handler发送消息   53.        } 
54.         
55.        return super.onTouchEvent(event);  56.    } 
57.     
58.     
59.} 

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2011-09/42481.htm

你可能感兴趣的:(Android中Message传递参数)