Android中如何向一个页面专递多个数据
使用 Parcelable 完成;
- 定义一个数据模型
package com.ixuea.courses.mymusic.component.input.activity.model.ui;
import android.os.Parcel;
import android.os.Parcelable;
/**
* 输入验证码界面数据模型
*/
public class InputCodePageData implements Parcelable {
private int style;
private String phone;
private String email;
public InputCodePageData() {
}
public InputCodePageData(int style) {
this.style = style;
}
public int getStyle() {
return style;
}
public void setStyle(int style) {
this.style = style;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.style);
dest.writeString(this.phone);
dest.writeString(this.email);
}
protected InputCodePageData(Parcel in) {
this.style = in.readInt();
this.phone = in.readString();
this.email = in.readString();
}
public static final Creator<InputCodePageData> CREATOR = new Creator<InputCodePageData>() {
@Override
public InputCodePageData createFromParcel(Parcel source) {
return new InputCodePageData(source);
}
@Override
public InputCodePageData[] newArray(int size) {
return new InputCodePageData[size];
}
};
}
可以使用插件自动生成 Parcelable的内容,参考 Android Studio插件Android Parcelable code generator详解-优快云博客
- 使用
String content = binding.username.getText().toString().trim();
boolean isPhone = RegularUtil.isPhone(content);
if (isPhone || RegularUtil.isEmail(content)) {
InputCodePageData pageData = new InputCodePageData(style);
if (isPhone) {
pageData.setPhone(content);
} else {
pageData.setEmail(content);
}
InputCodeActivity.start(getHostActivity(), pageData);
} else {
SuperToast.show(R.string.error_username_format);
}

被折叠的 条评论
为什么被折叠?



