feisky

云计算、虚拟化与Linux技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

使用 Bundle在Activity间传递数据

Posted on 2010-05-27 11:05  feisky  阅读(1711)  评论(0编辑  收藏  举报

使用    Intent 启动另一个 Activity
Intent  showNextPage_Intent=new  new  new  new  Intent();
showNextPage_Intent.setClass(UsingBundel.this    ,NextPageActivity.class);
startActivity(showNextPage_Intent);

在多个Activity 之间切换时候,注意每个  Activity 都应在 AndroidManifest.xml AndroidManifest.xml AndroidManifest.xml AndroidManifest.xml  中有所声明定义(如下)
<application  android:label="@string/app_name"
android:icon="@drawable/chinazphone" >
<activity  android:name=".UsingBundel"
android:label="@string/app_name" >
<intent-filter >
<action  android:name="android.intent.action.MAIN"  />
<category  android:name="android.intent.category.LAUNCHER"  />
</intent-filter>
</activity>
<activity  android:name=".NextPageActivity"
android:label="@string/nextpage" ></activity>
</application>
新的 Activity 在 AndroidManifest.xml 中必须定义声明


使用 Bundle  在 Activity间传递数据

从源请求 Activity 中通过一个 Intent  把一个服务请求传到目标 Activity 中
 private  Intent  toNextIntent;//Intent 成员声明
toNextIntent=new Intent();//Intent 定义
toNextIntent.setClass(TwoActivityME3.this,  SecondActivity3. class);
// 设定开启的下一个 Activity
startActivityForResult(toNextIntent,  REQUEST_ASK);
// 开启 Intent 时候  ,把请求码同时传递
在源请求 Activity 中等待 Intent 返回应答结果,通过重载 onActivityResult()方法
@Override
protected  void  onActivityResult(int requestCode,
  int  resultCode,  Intent  data)  {
//  TODO   Auto-generated  method  stub
super.onActivityResult(requestCode,  resultCode,  data);
if(requestCode==REQUEST_ASK){
if(resultCode==RESULT_CANCELED){
setTitle("Cancel****");
}else if(resultCode==RESULT_OK){
showBundle=data.getExtras();// 从返回的 Intent 中获得 Bundle
Name=showBundle.getString("myName" );// 从 bundle 中获得相应数据
text.setText("the  name  get  from  the  second  layout:\n"+Name);
}
}
}
☻   第一个参数是你开启请求 Intent 时的对应请求码,可以自己定义。
☻   第二个参数是目标 Activity 返回的验证结果码
☻   第三个参数是目标 Activity 返回的 Intent
目标 Activity 中发送请求结果代码,连同源 Activity 请求的数据一同绑定到 Bundle中通过 Intent 传回源请求 Activity 中
backIntent=new  new  new  new  Intent();
stringBundle=new  new  new  new  Bundle();
stringBundle.putString("myName",  Name);
backIntent.putExtras(stringBundle);
setResult(RESULT_OK,  backIntent);// 返回 Activity 结果码
finish();


无觅相关文章插件,快速提升流量