Activity间传递参数的四种常用方法
来源:互联网 发布:2016京东618销售数据 编辑:程序博客网 时间:2024/05/16 06:50
第一种:Intent方式传递简单数据
AActivity:
Intent i = new Intent(AActivity.this.BActivity.class);
i.putExtra("data","Hello world!");
startActivity(i);
BActivity:
Intent i = getIntent();
String data = i.getStringExtra("data");
第二种:Bundle数据包方式
AActivity:
Intent i = new Intent(AActivity.this.BActivity.class);
Bundle b = new Bundle();
b.putString("name","zhangsan");
b.putInt("age",20);
i.putExtras(b); //或i.putExtra("data",b)
startActivity(i);
BActivity:
Intent i = getIntent();
Bundle data = i.getExtras(); //Bundle data = i.getBundleExtra("data");
String name = data.getStringExtra("name");
Int age = data.getInt("age");
第三种:Serializable传递自定义对象(java自带)
public class User implements Serializable
private String name;
private int age;
public User(String name,int age){
this.age = age;
this.name = name;
}
}
AActivity:
Intent i = new Intent(AActivity.this.BActivity.class);
i.putExtra("data",new User("zhangsan",20));
startActivity(i);
BActivity:
Intent i = getIntent();
User user = (User) i.getSerializableExtra("data");
第四种:Parcelable传递自定义对象(Android提供)
相比第三种要复杂点,但是速度快
public class User implements Parcelable{
private String name;
private int age;
protected User(Parcel in) {
name = in.readString();
age = in.readInt();
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User(String name,int age){
this.age = age;
this.name = name;
}
@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 in) {
return new User(in.readString(),in.readInt());
}
@Override
public User[] newArray(int size) {
return new User[size];
}
};
}
AActivity:
Intent i = new Intent(AActivity.this.BActivity.class);
i.putExtra("data",new User("zhangsan",20));
startActivity(i);
BActivity:
Intent i = getIntent();
AActivity:
Intent i = new Intent(AActivity.this.BActivity.class);
i.putExtra("data","Hello world!");
startActivity(i);
BActivity:
Intent i = getIntent();
String data = i.getStringExtra("data");
第二种:Bundle数据包方式
AActivity:
Intent i = new Intent(AActivity.this.BActivity.class);
Bundle b = new Bundle();
b.putString("name","zhangsan");
b.putInt("age",20);
i.putExtras(b); //或i.putExtra("data",b)
startActivity(i);
BActivity:
Intent i = getIntent();
Bundle data = i.getExtras(); //Bundle data = i.getBundleExtra("data");
String name = data.getStringExtra("name");
Int age = data.getInt("age");
第三种:Serializable传递自定义对象(java自带)
public class User implements Serializable
private String name;
private int age;
public User(String name,int age){
this.age = age;
this.name = name;
}
}
AActivity:
Intent i = new Intent(AActivity.this.BActivity.class);
i.putExtra("data",new User("zhangsan",20));
startActivity(i);
BActivity:
Intent i = getIntent();
User user = (User) i.getSerializableExtra("data");
第四种:Parcelable传递自定义对象(Android提供)
相比第三种要复杂点,但是速度快
public class User implements Parcelable{
private String name;
private int age;
protected User(Parcel in) {
name = in.readString();
age = in.readInt();
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User(String name,int age){
this.age = age;
this.name = name;
}
@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 in) {
return new User(in.readString(),in.readInt());
}
@Override
public User[] newArray(int size) {
return new User[size];
}
};
}
AActivity:
Intent i = new Intent(AActivity.this.BActivity.class);
i.putExtra("data",new User("zhangsan",20));
startActivity(i);
BActivity:
Intent i = getIntent();
User user = (User) i.getParcelableExtra("data");
0 0
- Activity间传递参数的四种常用方法
- C++参数传递的四种方法
- 四种传递参数的方法
- 12.20 传递参数的四种方法
- 在不同Activity之间传递数据的四种常用方法
- 在不同Activity之间传递数据的四种常用方法
- PHP在页面间传递参数的四种方法
- PHP页面间参数传递的四种方法详解
- PHP页面间参数传递的四种方法详解
- PHP页面间参数传递的四种方法详解
- PHP页面间参数传递的四种方法详解
- PHP页面间参数传递的四种方法详解
- PHP页面间参数传递的四种方法
- PHP页面间参数传递的四种方法详解
- PHP页面间参数传递的四种方法详解
- PHP页面间参数传递的四种方法详解
- Android Activity之间传递数据的四种方法
- activity页面跳转传递参数的几种方法
- CentOS 7.0 关闭防火墙和selinux
- 简单配置搞定 Nginx + Tomcat + HTTPS
- synchronized的使用总结
- 笔记-Intent跳转
- HDU2044 一只小蜜蜂
- Activity间传递参数的四种常用方法
- 每天一道题 NYOJ 906 杨辉三角 (难度1)
- x86上的那些UNIX——BSD篇+主流桌面
- LeetCode119—Pascal's Triangle II
- androidStudio异常:Couldn't load memtrack module (No such file or directory)
- JNI调用Java方法的流程
- SQL Server Data Tools 2013中保存包save copy of
- 关于c#除法运算的问题
- MacBook笔记本用户与群组中无视警告修改高级选项引起进入root用户模式的混乱