关闭

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

395人阅读 评论(0) 收藏 举报
分类:

在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
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:44986次
    • 积分:975
    • 等级:
    • 排名:千里之外
    • 原创:55篇
    • 转载:7篇
    • 译文:4篇
    • 评论:8条