如果Activity之间传值的时候,想要传递对象,有一下两种传递方式
putSerializable(String ley,Serializable value);
putParcelable(String key,Parcelable value);
一种是
Bunble.putSerializable(String ley,Object);
Bunble.putParcelable(String key,Objec);
当然这些Object是有一定条件的,前面必须实现Serializble接口,后者实现Parcelable接口,
如果Activity之间传值的时候,想要传递对象,有一下两种传递方式
putSerializable(String ley,Serializable value);
putParcelable(String key,Parcelable value);
下面是Serializable的传递方式
创建一个实体类
public class DeptBean implements Serializable {
private String deptName;
private String deptAge;
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getDeptAge() {
return deptAge;
}
public void setDeptAge(String deptAge) {
this.deptAge = deptAge;
}
}
创建一个要传值的Activity
@Override
Protected void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
setContentView(R.layout.activity_main);
TextView tv=(TextView) findViewById(R.id.tv);
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DeptBean deptBean=new DeptBean();
deptBean.setDeptName("小明");
deptBean.setDeptAge("20");
Intent intent = new Intent(MainActivity.this,MainActivity2.class);
Bundle bundle=new Bundle();
bundle.putSerializable("SERIALIZBLE",deptBean);
intent.putExtras(bundle);
startActivity(intent);
}
});
}
这个是获取值的activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
TextView tv_Age=(TextView)findViewById(R.id.tv_age);
TextView tv_Name=(TextView)findViewById(R.id.tv_name);
DeptBean deptBean=(DeptBean) getIntent().getSerizlizableExtra("SERIALIZBLE");
String age=deptBean.getDeptAge();
String name=deptBean.getDeptName();
tv_Age.setText(age);
tv_Name.setText(name);
}
Parcelable的实现方法
public class DeptBean implements Parcelable {
private String deptName;
private String deptAge;
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getDeptAge() {
return deptAge;
}
public void setDeptAge(String deptAge) {
this.deptAge = deptAge;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(deptName);
parcel.writeString(deptAge);
}
public static final Parcelable.Creator<DeptBean> CREATOR=new Creator<DeptBean>() {
@Override
public DeptBean createFromParcel(Parcel parcel) {
DeptBean deptBean=new DeptBean();
deptBean.deptName=parcel.readString();
deptBean.deptAge=parcel.readString();
return deptBean;
}
@Override
public DeptBean[] newArray(int i) {
return new DeptBean[i];
}
};
}
Activity的实现方式同理
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv= (TextView) findViewById(R.id.tv);
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DeptBean deptBean=new DeptBean();
deptBean.setDeptName("小明");
deptBean.setDeptAge("20");
Intent intent=new Intent(MainActivity.this,MainActivity2.class);
Bundle bundle=new Bundle();
bundle.putParcelable("PARCELABLE",deptBean);
intent.putExtras(bundle);
startActivity(intent);
}
});
}
接收界面
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
tv_age=(TextView) findViewById(R.id.tv_age);
tv_name=(TextView) findViewById(R.id.tv_name);
DeptBean deptBean=(DeptBean) getIntent().getParcelableExtra("PARCELABLE");
String age=deptBean.getDeptAge();
String name=deptBean.getDeptName();
tv_age.setText(age);
tv_name.setText(name);
}
备注:本人菜鸟一个,纯自己手动敲出来,希望和大家分享一下