Android中Message传递参数

来源:互联网 发布:暗影格斗2mac存档 编辑:程序博客网 时间:2024/05/22 12:57

FROM:http://blog.csdn.net/wdaming1986/article/details/6748688  

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


 

                                程序打开界面:                                                 点击屏幕,销毁activity弹出Toast:

                                                 

看代码:

MainActivity。java类:

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。java类:

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);}@Overridepublic void onDraw(Canvas canvas) {canvas.drawBitmap(m_Bitmap, 0, 0, null);}@Overridepublic 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);}}
原创粉丝点击