首页 > 代码库 > Android程序中Acticity间传递数据
Android程序中Acticity间传递数据
在Android开发过程中,在不同的Acitivity之间传递数据的情况是非常常见的。我花费了一点时间来总结Acitivity之间的数据传递,记录下来。
1、简单传递键值对
这种传递方式非常简单,只需要在构造Intent加入相应的键值对。
在ActivityA中,调用Intent的代码如下:
1 Intent i = new Intent(ActivityA.this,ActivityB.class);2 i.putExtra("name", "Finlay Liu");3 i.putExtra("age", "19");5 startActivity(i);
在ActivityB中,可以直接更加相应的键值对读取即可。
1 String s = getIntent().getStringExtra("name") + " : " + getIntent().getStringExtra("age");4 Toast.makeText(this, s, Toast.LENGTH_SHORT).show();
2、传递对象
在不同的Acitivity之间传递对象,也是一种非常常见的做法。之前没有仔细阅读Android开发文档,所以之前我在写Android代码的时候,不同Acitivity之间对象传递是通过静态类来实现的。起始在Activity间传递对象也非常简单,与上面的传递键值对方法类似。
首先是对需要传递的类加上序列化接口:
1 package com.finlayliu.passingobject; 2 3 import java.io.Serializable; 4 5 public class Person implements Serializable { 6 7 private static final long serialVersionUID = 1L; 8 9 public int getId() {10 return id;11 }12 13 public void setId(int id) {14 this.id = id;15 }16 17 public String getName() {18 return name;19 }20 21 public void setName(String name) {22 this.name = name;23 }24 25 public int getAge() {26 return age;27 }28 29 public void setAge(short age) {30 this.age = age;31 }32 33 private int id;34 private String name;35 private int age;36 37 public Person() {38 39 }40 41 public Person(int id, String name, int age) {42 this.id = id;43 this.name = name;44 this.age = age;45 46 }47 48 public String toString() {49 return id + ":" + this.name + ":" + age;50 }51 }
在ActivityA中,调用Intent的代码如下:
1 Intent i = new Intent(MainActivity.this, OtherActivity.class);2 Person p = new Person(1, "Finaly Liu", 19);3 i.putExtra("Person", p);4 5 startActivity(i);
在ActivityB中,读取相应的对象代码如下:
1 Person p = (Person) getIntent().getSerializableExtra("Person");2 Toast.makeText(getApplicationContext(), p.toString(), Toast.LENGTH_LONG).show();
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。