gpt4 book ai didi

android - 如何将二维数组从一个 Activity 传递到另一个 Activity ?

转载 作者:太空狗 更新时间:2023-10-29 14:22:56 25 4
gpt4 key购买 nike

我在将我的2D 字符串 数组从一个 Activity 传递到另一个 Activity 时遇到问题我尝试了一些代码...但它们显示了一些错误

我的字符串数组是:

String[][] commuterDetails=new String[2][5];

commuterDetails=
{
{ "a", "b","c", "d","e" },
{"f", "g","h", "i","j" }
};

我尝试了一些代码

在第一个 Activity 中

Intent summaryIntent = new Intent(this, Second.class);
Bundle b=new Bundle();
b.putSerializable("Array", commuterDetails);
summaryIntent.putExtras(b);
startActivity(summaryIntent);

在第二个 Activity 中

Bundle b = getIntent().getExtras();
String[][] list_array = (String[][])b.getSerializable("Array");

但是显示错误

Caused by: java.lang.ClassCastException: [Ljava.lang.Object;

我是android的新手,请帮助我

最佳答案

您可以定义一个自定义类,它实现了 Parcelable 并包含从/向 Parcel 读取和写入二维数组的逻辑。然后,将该可打包对象放入 Bundle 中进行运输。

更新

public class MyParcelable implements Parcelable{

public String[][] strings;

public String[][] getStrings() {
return strings;
}

public void setStrings(String[][] strings) {
this.strings = strings;
}

public MyParcelable() {
strings = new String[1][1];
}

public MyParcelable(Parcel in) {
strings = (String[][]) in.readSerializable();
}

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeSerializable(strings);

}
public static final Parcelable.Creator<MyParcelable> CREATOR = new Parcelable.Creator<MyParcelable>() {

@Override
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}

@Override
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
}

关于android - 如何将二维数组从一个 Activity 传递到另一个 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15133195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com