本文实例讲述了Android实现Activities之间进行数据传递的方法。分享给大家供大家参考。具体分析如下:

首先,先说明一下Activity的启动及关闭:

1. startActivity(Intent intent);  启动Activity
       finish();  结束当前Activity
2. startActivityForResult(Intent intent, int requestCode);  以指定的请求码requestCode启动Activity
finishAcitivity(int requestCode);  结束以startActivityForResult(Intent intent, int requestCode)方法启动的Activity
假如有多个Activity,那么我们要关闭其中一个,那么就可以设置requestCode,来关闭相对应的Activity。

接着,我们来讲数据传递。问题是这样的:假如我们从页面A到页面B,A中有一些数据,比如用户信息(用户名,账号,密码等),从A中进入到页面B,在B中我们要获取这些数据信息,要怎么进行传递呢?

Intent提供了各种方法来携带额外的数据信息:

putExtras(Bundle data):向Intent中放入药携带的数据包
Bundle getExtras():取出Intent中携带的数据包,得到的是一个Bundle对象
putExtra(String name, Xxx value):向Intent中按照键值对key-value形式存入数据信息
getXxx(String name):从Intent中按照key获取相对应的数据信息
putXxx(String key, Xxx data):向Bundle中放入Xxx类型的数据信息
getXxx(String key):从Bundle中获取key对应的数据信息
putSerializable(String key, Serializable data):向Bundle中放入一个可以序列化的对象
getSerializable(String key, Serializable data):从Bundle中取出一个可以序列化的对象

有了以上的这些方法我们就可以进行数据传递了:
方法如下:

1. 在页面A中点击按钮bn,跳转到页面B代码如下:

int requestCode = 0;bn.setOnClickListener(new OnClickListener()){ @Override  public void onClick(View source) {  Intent intent= new(A.this, B.class);  startActivityForResult(intent, inquestCode);  //打开指定的Activity B,并等待返回的结果,  //其中inquestCode是请求码  }}

2. 在B页面中添加数据,代码如下:

Intent intent = getIntent();//获取当前启动的Acitivity B所对应的Intentintent.putExtra("数据内容","我是李明");//向Intent中绑定数据信息"我是李明"B.this.setResult(1, intent);//设置结果码,并设置结束之后退回的ActivityB.this.finish();

3. 在A中获取数据信息,代码如下:

在页面A中,为了获取B中返回的结果,我们应该重写A页面中的onActivityResult()方法,当B返回结果时,这个方法将会被调用:

String myData;@overridepublic void onAcitivityResult(int requestCode,int resultCode,Intent intent)//重写该方法以回调方式来获取B返回的结果{  if(requestCode==0&&resultCode==1)  {    Bundle data = intent.getExtras();    String myResultData = data.getString("数据内容");    //这样myResultData就是我们要从B中传递过来的数据信息了  }}

总结,通过使用Intent中的方法我们可以实现不同Activity之间的数据传递,通过设置标识码和结果码,我们可以有选择的打开关闭不同的Activity,这就是Activity之间的数据传递。

希望本文所述对大家的Android程序设计有所帮助。

更多相关文章

  1. Android简单实现 高德地图的定位与显示,点击按钮切换地图图层
  2. Curso Adapter ListView ContextMenu
  3. 谁是最受欢迎的Linux发行版?
  4. android关于AndroidManifest.xml详细分析
  5. 解决Android(安卓)Logcat不打印信息
  6. ECLIPSE android 布局页面文件出错故障排除Exception raised dur
  7. tensorflow和android零接触 (mac)
  8. 使用ContentProvider共享数据
  9. android 通话记录去重查询方法

随机推荐

  1. android开发之流量监控
  2. Android 底部弹出自定义Dialog(支付宝微
  3. android的两种异步机制
  4. Android中Intent组件详解 .
  5. Android(安卓)input处理机制(四)线程安全
  6. Android 查看/data/data文件夹并取回文件
  7. 2019最新Android算法相关面试大全,请查收
  8. 博文视点大讲堂35期《Google Android创赢
  9. 【Sublinux】Station P1在Android上使用
  10. 详解Android首选项框架的使用