Android之在不同的Activity之间传递数据
2015-11-21 12:45
627 查看
在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类)
虽然使用静态变量可以传递任何类型的数据,但是官方并不推荐这么做,因为大量使用静态变量,容易造成内存溢出异常。
public class Data extends Application{
private String b;
public String getB(){
return this.b;
}
public void setB(String c){
this.b= c;
}
@Override
public void onCreate(){
b = "hello";
super.onCreate();
}
}
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类)
虽然使用静态变量可以传递任何类型的数据,但是官方并不推荐这么做,因为大量使用静态变量,容易造成内存溢出异常。
public class Data extends Application{
private String b;
public String getB(){
return this.b;
}
public void setB(String c){
this.b= c;
}
@Override
public void onCreate(){
b = "hello";
super.onCreate();
}
}
相关文章推荐
- Android启动常见手机自带邮件包名汇总,用于分享功能等
- Android知识点(总结中)
- Android成长(二)——两个页面交互
- Android知识点记录: 使用代码设置 android 上listView的条目的点击背景颜色
- Android逆向之旅---基于对so中的section加密技术实现so加固
- android中的回调
- Android Ontouch
- Android Studio:Multiple dex files define Landroid/support/annotation/AnimRes
- Android之SharePreferences
- 38. Android 反射资源工具ReflectionUtil
- android AndroidManifest.xml
- 《第一行代码--Android》学习笔记--第一章:开始起航:思路
- Android 调用本地相机拍照并上传图片
- Android 使用VDPlayerSDK组件实现播放视频(一)
- Activity的启动模式
- Android 欢迎界面及首次安装导航界面实例
- android前端定制浏览器开发(干货)
- Android中的线程
- android开发Enum (枚举)的完美替代 —— @IntDef的使用
- Android内存优化大全