Java Parcelable在写入可序列化对象时遇到IOException?
我在这段代码中遇到“Parcelable遇到IOException写入序列化对象”错误Java Parcelable在写入可序列化对象时遇到IOException?,java,android,serialization,Java,Android,Serialization,我在这段代码中遇到“Parcelable遇到IOException写入序列化对象”错误 public void onClick(View v) { tvResult.setText("Povezivanje s bazom u tijeku..."); Intent i = new Intent("android.intent.action.MAINACTIVITY"); Details detai
public void onClick(View v) {
tvResult.setText("Povezivanje s bazom u tijeku...");
Intent i = new Intent("android.intent.action.MAINACTIVITY");
Details details = new Details();
details.host=etHost.getText().toString();
details.user=etUsername.getText().toString();
details.pass=etPass.getText().toString();
details.database=etBaza.getText().toString();
new GetData(tvResult).execute("");
Bundle bundle = new Bundle();
bundle.putSerializable("Detalji", details);
i.putExtras(bundle);
startActivity(i);
}
以下是我的详细信息课程:
public class Details implements Serializable
{
private static final long serialVersionUID = 1L;
private String host;
private String pass;
private String user;
private String database;
}
一切正常,直到
启动活动(i)
命令,有人知道为什么吗?在详细信息类中,您是否覆盖了writeToParcel和readFromParcel
@Override
public void writeToParcel(Parcel dest, int flags) {
}
如果要通过意图传递复杂对象,则详细信息需要实现可包裹
“详细信息”类需要位于它自己的文件中,而不是实现parcelable 在详细信息类中,您是否重写了writeToParcel和readFromParcel
@Override
public void writeToParcel(Parcel dest, int flags) {
}
如果要通过意图传递复杂对象,则详细信息需要实现可包裹
“详细信息”类需要位于它自己的文件中,而不是实现parcelable 在详细信息类中,您是否重写了writeToParcel和readFromParcel
@Override
public void writeToParcel(Parcel dest, int flags) {
}
如果要通过意图传递复杂对象,则详细信息需要实现可包裹
“详细信息”类需要位于它自己的文件中,而不是实现parcelable 在详细信息类中,您是否重写了writeToParcel和readFromParcel
@Override
public void writeToParcel(Parcel dest, int flags) {
}
如果要通过意图传递复杂对象,则详细信息需要实现可包裹
“详细信息”类需要位于它自己的文件中,而不是实现parcelable 您必须对数据类
详细信息实施Parcelable
public class Details implements Serializable, Parcelable {
private static final long serialVersionUID = 1L;
private String host;
private String pass;
private String user;
private String database;
public Details(Parcel in){
this.host = in.readString();
this.pass = in.readString();
this.user = in.readString();
this.database = in.readString();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.host);
dest.writeString(this.pass);
dest.writeString(this.user);
dest.writeString(this.database);
}
public static final Parcelable.Creator<Details> CREATOR = new Parcelable.Creator<Details>() {
public Details createFromParcel(Parcel in) {
return new Details(in);
}
public Details[] newArray(int size) {
return new Details[size];
}
};
}
公共类详细信息实现可序列化、可打包{
私有静态最终长serialVersionUID=1L;
私有字符串主机;
私人串通;
私有字符串用户;
私有字符串数据库;
公共详细信息(包裹内){
this.host=in.readString();
this.pass=in.readString();
this.user=in.readString();
this.database=in.readString();
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
dest.writeString(this.host);
目的地写入限制(本通行证);
dest.writeString(此用户);
dest.writeString(此数据库);
}
public static final Parcelable.Creator=新建Parcelable.Creator(){
公共详细信息createFromParcel(地块中){
返回新的详细信息(在中);
}
公共详细信息[]新数组(整数大小){
返回新的详细信息[大小];
}
};
}
现在我试着写一些应该对你有用的东西,但我不是100%肯定它会,所以从这里开始做一些传统的阅读:
您必须对您的数据类详细信息实施Parcelable
public class Details implements Serializable, Parcelable {
private static final long serialVersionUID = 1L;
private String host;
private String pass;
private String user;
private String database;
public Details(Parcel in){
this.host = in.readString();
this.pass = in.readString();
this.user = in.readString();
this.database = in.readString();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.host);
dest.writeString(this.pass);
dest.writeString(this.user);
dest.writeString(this.database);
}
public static final Parcelable.Creator<Details> CREATOR = new Parcelable.Creator<Details>() {
public Details createFromParcel(Parcel in) {
return new Details(in);
}
public Details[] newArray(int size) {
return new Details[size];
}
};
}
公共类详细信息实现可序列化、可打包{
私有静态最终长serialVersionUID=1L;
私有字符串主机;
私人串通;
私有字符串用户;
私有字符串数据库;
公共详细信息(包裹内){
this.host=in.readString();
this.pass=in.readString();
this.user=in.readString();
this.database=in.readString();
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
dest.writeString(this.host);
目的地写入限制(本通行证);
dest.writeString(此用户);
dest.writeString(此数据库);
}
public static final Parcelable.Creator=新建Parcelable.Creator(){
公共详细信息createFromParcel(地块中){
返回新的详细信息(在中);
}
公共详细信息[]新数组(整数大小){
返回新的详细信息[大小];
}
};
}
现在我试着写一些应该对你有用的东西,但我不是100%肯定它会,所以从这里开始做一些传统的阅读:
您必须对您的数据类详细信息实施Parcelable
public class Details implements Serializable, Parcelable {
private static final long serialVersionUID = 1L;
private String host;
private String pass;
private String user;
private String database;
public Details(Parcel in){
this.host = in.readString();
this.pass = in.readString();
this.user = in.readString();
this.database = in.readString();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.host);
dest.writeString(this.pass);
dest.writeString(this.user);
dest.writeString(this.database);
}
public static final Parcelable.Creator<Details> CREATOR = new Parcelable.Creator<Details>() {
public Details createFromParcel(Parcel in) {
return new Details(in);
}
public Details[] newArray(int size) {
return new Details[size];
}
};
}
公共类详细信息实现可序列化、可打包{
私有静态最终长serialVersionUID=1L;
私有字符串主机;
私人串通;
私有字符串用户;
私有字符串数据库;
公共详细信息(包裹内){
this.host=in.readString();
this.pass=in.readString();
this.user=in.readString();
this.database=in.readString();
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
dest.writeString(this.host);
目的地写入限制(本通行证);
dest.writeString(此用户);
dest.writeString(此数据库);
}
public static final Parcelable.Creator=新建Parcelable.Creator(){
公共详细信息createFromParcel(地块中){
返回新的详细信息(在中);
}
公共详细信息[]新数组(整数大小){
返回新的详细信息[大小];
}
};
}
现在我试着写一些应该对你有用的东西,但我不是100%肯定它会,所以从这里开始做一些传统的阅读:
您必须对您的数据类详细信息实施Parcelable
public class Details implements Serializable, Parcelable {
private static final long serialVersionUID = 1L;
private String host;
private String pass;
private String user;
private String database;
public Details(Parcel in){
this.host = in.readString();
this.pass = in.readString();
this.user = in.readString();
this.database = in.readString();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.host);
dest.writeString(this.pass);
dest.writeString(this.user);
dest.writeString(this.database);
}
public static final Parcelable.Creator<Details> CREATOR = new Parcelable.Creator<Details>() {
public Details createFromParcel(Parcel in) {
return new Details(in);
}
public Details[] newArray(int size) {
return new Details[size];
}
};
}
公共类详细信息实现可序列化、可打包{
私有静态最终长serialVersionUID=1L;
私有字符串主机;
私人串通;
私有字符串用户;
私有字符串数据库;
公共详细信息(包裹内){
this.host=in.readString();
this.pass=in.readString();
this.user=in.readString();
this.database=in.readString();
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
dest.writeString(this.host);
目的地写入限制(本通行证);
dest.writeString(此用户);
dest.writeString(此数据库);
}
public static final Parcelable.Creator=新建Parcelable.Creator(){
公共详细信息createFromParcel(地块中){
返回新的详细信息(在中);
}
公共详细信息[]新数组(整数大小){
返回新的详细信息[大小];
}
};
}
现在我试着写一些应该对你有用的东西,但我不能百分之百肯定我能做到