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

在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. }  



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值