如何从一个活动传递两个diamentional数组到另一个活动?
问题描述:
我有从一个活动通过我2D串数组另一个活动 我尝试了一些代码的问题......但他们表现出一些错误如何从一个活动传递两个diamentional数组到另一个活动?
我的字符串数组是:
String[][] commuterDetails=new String[2][5];
commuterDetails=
{
{ "a", "b","c", "d","e" },
{"f", "g","h", "i","j" }
};
我尝试了一些代码
在第一项活动
Intent summaryIntent = new Intent(this, Second.class);
Bundle b=new Bundle();
b.putSerializable("Array", commuterDetails);
summaryIntent.putExtras(b);
startActivity(summaryIntent);
在第二活动
Bundle b = getIntent().getExtras();
String[][] list_array = (String[][])b.getSerializable("Array");
但它显示错误
Caused by: java.lang.ClassCastException: [Ljava.lang.Object;
我在Android的新的,请帮我
答
让你commuterDetails在其他活动静态并获得这样
FirstActivity.commuterDetails[][]
答
你可以定义它实现Parcelable
并包含逻辑读取和/至包裹写2维数组的自定义类。之后,将该可分类物体放入Bundle内运输。
UPDATE
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];
}
};
}
**没有人给我一个解决方案....谁能回答这个问题... ?? ** – SibinF 2013-02-28 11:22:24