利用Bundle实现Android Activity间消息的传递
之前写过一篇文章是关于Android 的Activity跳转的,但当中没涉及到Activity的消息的传递。利用Bundle是一种比较方便的办法。
程序的效果是活动A向B跳转的同时发送一字符串,B读出字符串。
先在AndroidManifest.xml中定义一个新的Activity,target:
?
第一个活动的代码如下:
package com.ray.test;import android.app.Activity;import android.os.Bundle;public class Target extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Bundle bundle = getIntent().getExtras(); String data=bundle.getString("Data");//读出数据 setTitle(data); }}?
?
?
?
1 楼 lordhong 2009-07-13 嗯, 不错, 如果要从Target往TestBundle回传数据/信息, 可以在TestBundle里面:
startActivityForResult(intent, 1333); // 1333是request code
然后在Target里面, 回传的时候:
Intent data = new Data();
data.putExtra("msg", "my message");
setResult(RESULT_OK, data);
finish();
在TestBundle里出来传回来的数据/信息:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String msg = data.getExtras.getString("msg");
// ...
} 2 楼 raymondlueng 2009-07-13 恩,谢谢你的回复,很好! 3 楼 二十一 2009-07-13 还有个东西需要留意的就是requestCode 它是作为标识此次intent出现的,他可以设置为任何你想要的int值,从而在onActivityResult中据此做出不同的处理 4 楼 jd2bs 2009-07-13 楼上几位说的都很到位 简洁