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 = ;
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, , , null);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
Rect rect;
rect = new Rect(,,,);
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);
}
}
Android Handler之Message传递参数的更多相关文章
- 转载《Android Handler、Message》
之前也是由于周末通宵看TI3比赛,一直没找到时间写博客,导致已经有好久没更新了.惭愧!后面还会恢复进度,尽量保证每周都写吧.这里也是先恭喜一下来自瑞典的Alliance战队夺得了TI3的冠军,希望明年 ...
- Android Handler、Message完全解析,带你从源码的角度彻底理解
之前也是由于周末通宵看TI3比赛,一直没找到时间写博客,导致已经有好久没更新了.惭愧!后面还会恢复进度,尽量保证每周都写吧.这里也是先恭喜一下来自瑞典的Alliance战队夺得了TI3的冠军,希望明年 ...
- android handler ,message消息发送方式
1.Message msg = Message.obtain(mainHandler) msg.obj=obj;//添加你需要附加上去的内容 msg.what = what;//what消息处理的类 ...
- Android Handler、Message、MessageQueue和Looper官方说明
Handler官方说明 官方API文档:https://developer.android.google.cn/reference/android/os/Handler Handler允许您发送和处理 ...
- [原创]Android Handler使用Message的一个注意事项
最近发现了一个莫名其妙的问题,在使用Handler.post(Runnable)这个接口时,Runnable有时候没有运行,非常奇怪,后来发现是因为调用Handler.removeMessage()时 ...
- Android Handler传递参数动态更新UI界面demo
package com.example.demo_test; import android.app.Activity; import android.os.Bundle; import android ...
- Android之消息机制Handler,Looper,Message解析
PS:由于感冒原因,本篇写的有点没有主干,大家凑合看吧.. 学习内容: 1.MessageQueue,Looper,MessageQueue的作用. 2.子线程向主线程中发送消息 3.主线程向子线程中 ...
- Android Handler机制(一)---Message源码分析
Message: 定义: public final class Message implements Parcelable Message类是个final类,就是说不能被继承,同时Message类实现 ...
- Android 消息机制 (Handler、Message、Looper)
综合:http://blog.csdn.net/dadoneo/article/details/7667726 与 http://android.tgbus.com/Android/androidne ...
随机推荐
- Intel格式和AT&T格式汇编区别
一.AT&T 格式Linux 汇编语法格式 在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀:而在 Intel 汇编格式中,寄存器名不需要加前缀.例如: AT&T 格 ...
- Visual Assist X破解方法
VC2008的破解方法:使用2008的朋友我就不多说了,直接拷贝到你选择的那个安装目录去,例如 C:\Program Files\Visual Assist\ ,直接运覆盖VA_X.dll 即可VC2 ...
- PropertyDrawer 自定义属性绘图
public class PlayerAttributeExample : MonoBehaviour { //无滑块的属性 ; //特性限定,有滑块 [Range(, )] ; } Range特性的 ...
- java 进制转化
public static void toBinary(int num){ trans(num,1,1); } public static void toHex(int num){ trans(num ...
- .NET核心代码保护策略-隐藏核心程序集
经过之前那个道德指责风波过后也有一段时间没写博客了,当然不是我心怀内疚才这么久不写,纯粹是程序员的通病..怎一个懒字了得,本来想写一些长篇大论反讽一下那些道德高人的.想想还是算了,那样估计会引来新一波 ...
- Azure VM 远程无法登陆问题(No Remote Desktop License)
解决方法: 打开 Wins+R=> mstsc /v: yourVMIPadress /admin mstsc /v:xx.xx.xx.xx:54738 /admin
- SqlServer 系统存储过程
exec sp_databases; --查看数据库exec sp_tables; --查看表exec sp_columns Categories;--查看列exec sp_helpIndex Cat ...
- 修改tomcat 启动45秒
当我们需要增加Tomcat的启动时间,修改方法如下:
- Linq常用
1.左关联查询var lst = from m in db.信息 join d in db.明细信息 on m.单号 equals d.单号 into mi ...
- VIM配置自动提示功能
问题描述: 使用VIM作为Linux下的IDE,但是VIM默认情况下不支持自动代码提示功能,因此希望安装插件实现自动提示功能,目前找到的自动提示工具,非常好用 ...