Android之在不同的Activity之间传递数据

原创 2015年11月21日 12:45:49

在Android中传递数据的方法非常多,本节将介绍4种比较常用的数据传递方法,这4种数据传递方法如下:

1、通过Intent传递数据

2、通过静态(static)变量传递数据

3、通过剪切板(Clipboard)传递数据

4、通过全局变量传递数据


1、利用Intent的Extra部分来存储我们想要传递的数据,可以传送int, long, char等一些基础类型,对复杂的对象就无能为力了。Intent传递数据具有局限性,Intent无法传递不能序列化的对象。

传递数据:

//传递参数

Intent intentSimple = new Intent();

intentSimple.setClass(MainActivity.this,SecondActivity.class);

Bundle bundle=new Bundle();

bundle.putString("user","xxx");

bundle.putString("pwd","xxx");

intentSimple.putExtras(bundle);

startActivity(intentSimple);

接收数据:

//接收参数  
Bundle bundle = this.getIntent().getExtras();  

String eml = bundle.getString("usr");  

String pwd = bundle.getString("pwd");

2、静态变量就是一种非常方便,易用的传递数据的方法。(static)

3、使用剪切板传递数据。(Clipboard)

下面是将字符串保存到剪切板上的代码:

Intent intent=new Intent(this,SecondActivity.class);

//获取管理剪切板的对象(ClipboardManager)

ClipboardManager clipboard=(ClipboardManager)gerSystemService(Context.CLIPBOARD_SERVICE);

//向剪切板保存字符串

clipboard.setText("通过Clipboard传递数据");

startActivity(intent);

下面是从剪切板上获取这个字符串的代码:

ClipboardManager clipboard=(ClipboardManager)gerSystemService(Context.CLIPBOARD_SERVICE);

//剪切板获得字符串

String text=clipboard.getText().toString();

4、使用全局变量传递数据(Application类)

虽然使用静态变量可以传递任何类型的数据,但是官方并不推荐这么做,因为大量使用静态变量,容易造成内存溢出异常。

  1. public class Data extends Application{  
  2.     private String b;  
  3.       
  4.     public String getB(){  
  5.         return this.b;  
  6.     }  
  7.     public void setB(String c){  
  8.         this.b= c;  
  9.     }  
  10.     @Override  
  11.     public void onCreate(){  
  12.         b = "hello";  
  13.         super.onCreate();  
  14.     }  
  15. }  



版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 学习之路一:Activity之间传递数据的四种方式

传递数据 新建 Activity 在项目中右键,选择 New,继续选择中下方的 Activity,最后是 Blank Activity。此时 Android Studio 会为我们自动添加一个对应的布...
  • NoMasp
  • NoMasp
  • 2015年10月11日 00:40
  • 5544

Android开发笔记---不同activity之间的数据传递

数据传递有两种 1.只能传递简单的数据 首先,Intent型的变量i,i.putExtra(name,要传的东西);方法,将其传过去 然后在另一个activity上用getIntent()方法,来获得...
  • liang1232015
  • liang1232015
  • 2015年07月28日 14:16
  • 388

Android 两个Activity之间传递数据及返回

从Activity1带参数跳转到Activity2这个经常用到,比较熟悉,但如何从Activity2将数据返回给Activity1呢?这个其实也不麻烦,动手敲一下就知道了。 Activity1代...
  • zhang070514
  • zhang070514
  • 2016年03月22日 16:52
  • 1928

Android中不同Activity之间的数据传递

需要用到的类及方法: 类似:两个国家做贸易,交易货物; --传递载体:intent(货船) --需要传递的内容:用bundle(集装箱)包装的string(某控件的值) --对接方法:onActivi...
  • yxb_yingu
  • yxb_yingu
  • 2016年05月24日 18:58
  • 962

Activity 之间传值的几种方式

一、通过startActivity来进行Activity的传值 在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent ...
  • qq_33748378
  • qq_33748378
  • 2016年11月04日 10:12
  • 3673

两个Activity之间通过Intent相互(双向)传递数据

两个Activity通过Intent相互交换数据,在Activity中用一个Button 选择是否接受数据,不能直接写在onCreate中否则在Activity1 中获取从Activity2发送的数据...
  • fuckluy
  • fuckluy
  • 2016年03月19日 22:23
  • 1483

两个Activity中的Fragment之间的参数传递

这是我第一次写博客,也是在大神的指点下,因为看到大神都说菜鸟就要多写博客才可以成长,于是我鼓足勇气开始了。 Fragment和Activity 之间那些事。...
  • qq_35164237
  • qq_35164237
  • 2017年01月12日 21:35
  • 427

Android中在两个Activity之间进行数据传递

大家好,今天我终于开通了自己的博客,很开心能和大家共同分享我的学习经验,希望我们可以共同进步哦,废话不多说了,看一下我今天学习android遇到的一些问题和解决办法吧       首先先把我使用的ec...
  • u013095688
  • u013095688
  • 2013年12月09日 20:59
  • 1396

在activity之间传递handler(一)

最近在研究基于安卓系统的语音识别和蓝牙通讯,过程中涉及到多个activity的交互。activity之间的交互数据可以由Intent完成,也可以借用Handler。如果用intent的话,一定要fin...
  • Sherry_up
  • Sherry_up
  • 2016年01月12日 11:22
  • 1439

【Android 开发】 : Activity之间传递数据的几种方式

在Android开发中,我们通常需要在不同的Activity之间传递数据,下面我们就来总结一下在Activity之间数据传递的几种方式。 1. 使用Intent来传递数据 Intent...
  • fd27132981
  • fd27132981
  • 2014年01月16日 21:17
  • 1568
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android之在不同的Activity之间传递数据
举报原因:
原因补充:

(最多只允许输入30个字)