Activity之间的数据传递(Arraylist)

时间:2023-12-14 16:15:32

1.使用Serialiable方法

  实现序列化

2.使用Parcelable方法(这是android自己封装的类)

  Parcel类是封装数据的容器,封装后的数据通过Intent和IPC传递

    实现Parcelable接口,他的实例可以写入到Parcel中,并且能够从中恢复

封装属性的代码如下:

public class User implements Parcelable {

    /** 用户id */
public Integer user_id; /** 用户名 */
public String user_name; /** 昵称 */
public String nick_name;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeValue(this.user_id);
dest.writeString(this.user_name);
dest.writeString(this.nick_name);}
protected User(Parcel in) {
this.user_id = (Integer) in.readValue(Integer.class.getClassLoader());
this.user_name = in.readString();
this.nick_name = in.readString();}

*************************************************************

//生成随机数字和字母,
private static String getStringRandom(int length) {
String val = "";
Random random = new Random(); //参数length,表示生成几位随机数
for(int i = 0; i < length; i++) { String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
//输出字母还是数字
if( "char".equalsIgnoreCase(charOrNum) ) {
//输出是大写字母还是小写字母
int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;
val += (char)(random.nextInt(26) + temp);
} else if( "num".equalsIgnoreCase(charOrNum) ) {
val += String.valueOf(random.nextInt(10));
}
}
return val;
}