传递简单数据


//发送方
i.putExtra("data",t.getText().toString()); //接收方
Intent i = getIntent();
m = (EditText)findViewById(R.id.et2);
m.setText(i.getStringExtra("data"));

数据回传

//接收方
public void sendBack(View view){ Intent i = new Intent();//不仅可以跳转activity,还可以作为数据的载体传递)
i.putExtra("data",m.getText().toString());
setResult(1,i);//设置responseCode为1
finish();//结束当前activity } //发送方
startActivityForResult(i,0);//设置requestCode为0

/***重写方法onActivityResult(),通过requestCode和resultCode来识别本次StartActivity的意义***/

protected void onActivityResult(int requestCode, int resultCode, Intent data){

    super.onActivityResult(requestCode,resultCode,data);

    n.setText("另外一个activity返回的数据是:"+ data.getStringExtra("data"));
}

使用bundle传递数据包

//发送方
Bundle b = new Bundle();
b.putString("Name","lin");
b.putInt("Age",17);
b.putInt("Classid",3);
i.putExtras(b); //接收方
Bundle b = i.getExtras();
m.setText(String.format("Name:%s,Age:%d,Classid:%d",b.getString("Name"),b.getInt("Age"),b.getInt("Classid")));

传递值对象

传递值对象有两种方式(serializable和parcelable)

①serializable (序列化过程由系统完成,速度较慢)

//新建User类 

 public class User implements Serializable {}

//发送方

i.putExtra("user",new User(2,"duolaAmeng"));

//接收方

User u = (User) i.getSerializableExtra("user");
m.setText(String.format("user info(name=%s,age=%d)",u.getName(),u.getAge()));

②parcelable (专门针对android平台,没有采用系统的序列化机制,速度较快)

//新建User类

public class User implements Parcelable {
@Override
public int describeContents() {
return 0;
} @Override
public void writeToParcel(Parcel parcel, int i) { parcel.writeString(getName());
parcel.writeInt(getAge()); } public static final Creator<User> CREATOR = new Creator<User>() {
@Override
public User createFromParcel(Parcel parcel) {
return new User(parcel.readInt(),parcel.readString());
} @Override
public User[] newArray(int i) {
return new User[i];
}
};

//接收方

User u = (User) i.getParcelableExtra("user");
m.setText(String.format("user info(age=%d,name=%s)",u.getAge(),u.getName()));

BUT: parcelable方法可运行成功,但结果不对,"name"传null,“age"传10,后续跟进。

注:①什么是序列化?什么时候需要使用序列化?

  ②Creator<User> ?

												

最新文章

  1. SSRF篇-本着就了解安全本质的想法,尽可能的用通俗易懂的语言去解释安全漏洞问题
  2. 弱省互测#0 t3
  3. GJM :C#开发 异步处理是目的,多线程是手段
  4. http协议(八)请求首部字段
  5. phpcms分页用法简介
  6. Sumsets
  7. Swift实战-QQ在线音乐(第二版)
  8. matlab可变参数
  9. SharePoint 2013 Nintex Workflow 工作流帮助(二)
  10. HDU 1883 Phone Cell (圆覆盖最多点)
  11. 创建安全的ashx文件,ashx编译
  12. Java OOP考试错题分析
  13. 如何本地测试例如QQ登录等第三方接口
  14. Idea 设置根目录
  15. 关于用VMware克隆linux系统后,无法联网找不到eth0网卡的问题
  16. 学习pthreads,给线程传递多个参数
  17. c提高第六次课 文件读取
  18. 中国省市县数据库sql文件(2017年10月31日之前)
  19. $_FILES[&quot;file&quot;][&quot;error&quot;]是错误代码
  20. MediaInfo代码阅读

热门文章

  1. JAVA_build_ant_cmd pass muti param
  2. While installing plugin in eclipse luna, “Unable to acquire PluginConverter service” and “No repository found” errors appear in logs
  3. C51的模块化设计方法
  4. 【Xamarin开发IOS-IOS生命周期】
  5. iOS 9之Advanced Touch Input(高级触摸输入)
  6. [转]一步步搭建Ubuntu环境——dpkg 被中断,您必须手工运行 sudo dpkg --configure -a 解决此问题——安装Flashplayer出错 ------不错
  7. NOI 2013 矩阵游戏
  8. HDU 4274 Spy&#39;s Work (树 DFS)
  9. Composer 基本指令操作使用
  10. [RxJS] Combining Streams with CombineLatest