AndroidIntent传递类,数组的两种方法
来源:互联网 发布:中国网络的发展 编辑:程序博客网 时间:2024/06/03 21:48
使用环境:
需要跳转界面传递数据
使用方法:
intent传递类:
第一种: 序列化之后传递
类序列化:(遇到class 就 implements Serializable)
public class RectifyInfo implements Serializable{}
开始传递:
Intent intent = new Intent(getActivity(),RectificationIssuedActivity.class);Bundle bundle = new Bundle();bundle.putSerializable("rect",mLists.get(position));//传入类的对象intent.putExtras(bundle);getActivity().startActivity(intent);
取出数据:
rr = (RectifyInfo.ResultBean) getIntent().getSerializableExtra("rect");
第二种
用Parcelable方式传递Object
让bean类集成parcelable(用法请百度)
public class QualityInfo implements Parcelable{ public QualityInfo(){ } private String inspectionAbbreviation;//private String 组砌方法private String , private String inspectionComments;//private String private String , private String inspectionGrade;//private String 1private String , private String inspectionId;//private String c529c9acb65e43b2a232a5cde3892f14private String , private String inspectionStandardAb;//private String 第5.3.1条private String , private String inspectionStandardall;//private String private String , private String inspectionType;//private String 一般项目private String , private String inspectionValid;//private String 0private String , private String itemId;//private String bfcb91b91a294e718a234f5241f69663private String //取出 protected QualityInfo(Parcel in) { inspectionAbbreviation = in.readString(); inspectionComments = in.readString(); inspectionGrade = in.readString(); inspectionId = in.readString(); inspectionStandardAb = in.readString(); inspectionStandardall = in.readString(); inspectionType = in.readString(); inspectionValid = in.readString(); itemId = in.readString(); } public static final Creator<QualityInfo> CREATOR = new Creator<QualityInfo>() { @Override public QualityInfo createFromParcel(Parcel in) { return new QualityInfo(in); } @Override public QualityInfo[] newArray(int size) { return new QualityInfo[size]; } }; public String getInspectionAbbreviation() { return inspectionAbbreviation; } public void setInspectionAbbreviation(String inspectionAbbreviation) { this.inspectionAbbreviation = inspectionAbbreviation; } public String getInspectionComments() { return inspectionComments; } public void setInspectionComments(String inspectionComments) { this.inspectionComments = inspectionComments; } public String getInspectionGrade() { return inspectionGrade; } public void setInspectionGrade(String inspectionGrade) { this.inspectionGrade = inspectionGrade; } public String getInspectionId() { return inspectionId; } public void setInspectionId(String inspectionId) { this.inspectionId = inspectionId; } public String getInspectionStandardAb() { return inspectionStandardAb; } public void setInspectionStandardAb(String inspectionStandardAb) { this.inspectionStandardAb = inspectionStandardAb; } public String getInspectionStandardall() { return inspectionStandardall; } public void setInspectionStandardall(String inspectionStandardall) { this.inspectionStandardall = inspectionStandardall; } public String getInspectionType() { return inspectionType; } public void setInspectionType(String inspectionType) { this.inspectionType = inspectionType; } public String getInspectionValid() { return inspectionValid; } public void setInspectionValid(String inspectionValid) { this.inspectionValid = inspectionValid; } public String getItemId() { return itemId; } public void setItemId(String itemId) { this.itemId = itemId; } //这个方法不需要修改 @Override public int describeContents() { return 0; } //写入 @Override public void writeToParcel(Parcel parcel, int i) { parcel.writeString(inspectionAbbreviation); parcel.writeString(inspectionComments); parcel.writeString(inspectionGrade); parcel.writeString(inspectionId); parcel.writeString(inspectionStandardAb); parcel.writeString(inspectionStandardall); parcel.writeString(inspectionType); parcel.writeString(inspectionValid); parcel.writeString(itemId); }
开始传递:
(这一种需要做的代码比implements Ser………做的工作稍微多了一点点,但是方法更显得独一无二)
ParInfo parInfo = new ParInfo(name, website, weibo);Intent intent = new Intent();Bundle bundle = new Bundle();bundle.putParcelable("parinfo", parInfo);// 这里调用了writeToParcel方法,向dest写数据 intent.setClass(MainActivity.this, ResultActivity.class);intent.putExtras(bundle);startActivity(intent);取出数据:
ParInfo parInfo = (ParInfo) getIntent().getParcelableExtra("parinfo");//这里调用了UsercreateFromParcel方法,返回
**********************************************************************************************************
分割线,下面再Activity中传递数组 序列
ArrayList<SerInfo> listObj = new ArrayList<SerInfo>();SerInfo serInfo1 = new SerInfo(name, website, weibo);SerInfo serInfo2 = new SerInfo(name, website, weibo);listObj.add(serInfo1);listObj.add(serInfo2);Intent intent = new Intent();intent.setClass(MainActivity.this, ResultActivity.class);intent.putExtra("listobj", (Serializable) listObj); startActivity(intent);
取值的方法:
SerInfo serInfo = (SerInfo) getIntent().getSerializableExtra("listobj");
***********************************************************************************************************************************
Activity和fragment传递数据:
传递基本类型数据:
Fragment fragment1 = new RectifySecondFragment();Bundle bundle1 = new Bundle();bundle1.putString(BUNDLE_STR,"待下发");fragment1.setArguments(bundle1);
取出方法:
String argument = getArguments().getString(BUNDLE_STR);
传递数组:
Fragment fragment = new RectifyFragment();Bundle b1 = new Bundle();if (0 == position) { LogUtil.e("activity传值:"+ rr.size() + "条"); b1.putSerializable(INTENTN_MODEL, (Serializable) list0);} else if (1 == position) { LogUtil.e("activity传值:"+ rr.size() + "条"); b1.putSerializable(INTENTN_MODEL, (Serializable) list1);}b1.putInt(INTENTN_ID, position);fragment.setArguments(b1);
取出:
mLists = (List<RectifyInfo.ResultBean>) getArguments().getSerializable(INTENTN_MODEL);
int i = getArguments().getInt(INTENTN_ID);
总结:
1 bean类序列化以后,可以存类和列表。
2 通过intent存取和通过arguments存取方法差不多。
关于传递数据这方面,若有不懂,请联系我:
QQ:532245792
phone:15515291707
阅读全文
0 0
- AndroidIntent传递类,数组的两种方法
- Ajax请求传递数组参数的两种方法
- intent传递对象的两种方法
- intent传递对象的两种方法
- intent传递对象的两种方法
- Intent传递对象的两种方法
- Intent 传递对象的两种方法
- 两种传递地址方法
- 数组参数传递的几种方法
- 详解java中给方法传递参数的两种方式:按值传递,引用传递
- 两种遍历二维数组的方法
- javascript遍历数组的两种方法
- javascript遍历数组的两种方法
- python遍历数组的两种方法
- JS数组合并的两种方法
- 遍历数组的两种方法
- python遍历数组的两种方法
- 动态分配二维数组的两种方法
- java调用WEBSERVICE接口简单实现
- 使用SourceTree 关联远程仓库
- ubuntu16.04默认使用root用户登录
- 小朋友学C++(2):面向过程与面向对象
- 一致性hash(适合py3)
- AndroidIntent传递类,数组的两种方法
- 高数 07.01 多元函数的基本概念
- 小朋友学C++(3):类与对象
- MATLAB学习笔记01——基本命令和矩阵
- 消息队列原理及activeMQ基本知识点
- RabbitMQ Hello World
- Windows API入门系列之七 -完善MessageBox
- 自定义View学习笔记(一)
- 小朋友学C++(4):public, protected, private