android intent 传数据
2024-08-25 14:27:23
1. 基本数据类型
Intent intent = new Intent();
intent.setClass(activity1.this, activity2.class); //描述起点和目标
Bundle bundle = new Bundle(); //创建Bundle对象
bundle.putString("key", "包装的数据"); //装入数据
intent.putExtras(bundle); //把Bundle塞入Intent里面
startActivity(intent);
2. 传对象的两种方式 java.io.Serializable和android.os.Parcelable
1. android.os.Parcelable(android推荐使用)
1).被传递的类对象需要实现parcelable接口
public class Employee implements Parcelable{
public String id;
public String name;
public String dept;
public String idcard;
public String statusInt;
public String status;
public String mobile;
public String sex;
public String sexInt;
public String address;
public String avatar;
public String education;
public String birthday;
public String age;
public String dept_name;
public String imageUrl;
public String manager;
public String score; public static final Parcelable.Creator<Employee> CREATOR = new Creator<Employee>() {
public Employee createFromParcel(Parcel source) {
Employee employee = new Employee();
employee.name = source.readString();
employee.age = source.readString();
employee.dept_name = source.readString();
employee.sex = source.readString();
employee.status = source.readString();
employee.manager = source.readString();
employee.score = source.readString();
employee.imageUrl = source.readString();
return employee;
}
public Employee[] newArray(int size) {
return new Employee[size];
}
}; @Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int arg1) {
parcel.writeString(name);
parcel.writeString(age);
parcel.writeString(dept_name);
parcel.writeString(sex);
parcel.writeString(status);
parcel.writeString(manager);
parcel.writeString(score);
parcel.writeString(imageUrl);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} }
2)传递对象代码
Intent intent = new Intent(mContext, AnotherActivity.class);
Bundle mEmployeeBundle = new Bundle();
mEmployeeBundle.putParcelable(EMPLOYEE_PAR_KEY, mEmployees.get(position));
intent.putExtras(mEmployeeBundle);
startActivity(intent);
3) AnotherActivity中取值
mEmployee = (Employee)getIntent().getExtras().getParcelable(HomeFragment.EMPLOYEE_PAR_KEY);
Log.d(TAG, "employee name :"+mEmployee.name);
2. java.io.Serializable
1)类对象
public class Ser implements Serializable { /**
* serialVersionUID的作用是在修改实体类后,可以正常的序列化和反序列化,在此不多说,大家可以谷歌百度下。
*/
private static final long serialVersionUID = 123456789090L;
private String name;
private int age;
}
2)传值及取值
bundle.putSerializable(SER_KEY, new Ser());
intent.putExtras(bundle);
startActivity(intent);
pSer = (Ser) getIntent().getSerializableExtra(SER_KEY); //another activity 取值
最新文章
- 2.C语言中的关键字
- /etc/ethers【地址映射】
- 日志分析_统计每日各时段的的PV,UV
- jQuery和Ajax的使用(杂记)
- google打不开啦,咋办?
- 数组排序-冒泡排序-选择排序-插入排序-希尔排序-快速排序-Java实现
- acdream 1738 世风日下的哗啦啦族I
- 使用Java正则表达式的分组解析身份证的年月日
- winform windowsmediaplayer的属性
- H5个性三级联动日期插件(一)
- TypeScript入门(一)
- 仿 ELEMENTUI 实现一个简单的 Form 表单
- 小型互联网公司的IT系统建设思路
- Apache RocketMQ在linux上的常用命令
- 在服务器上搭建wordpress个人博客 php7.2+nginx+mysql+wordperss
- ubuntu下修改网卡名称
- 分布式监控系统Zabbix-3.0.3-完整安装记录 - 添加shell脚本监控
- SVN 错误:Error validating server certificate for &#39;https://xxxxxxx&#39;:443... Mac os svn客户端证书验证缓存 解决
- LVS+NGINX+TOMCAT_集群实施操作记录.docx
- 让cxGrid像Excel那样高亮显示选区的行号列标