2 rocksent rocksent 于 2013.09.09 13:27 提问

Android 如何传二维数组
String[][] testArr = new String[2][2];
int i = 0;
for(String[] x:testArr){
x[i][0]="zhangsan";
x[i][1]="lisi";
i++;
}

把这个testArr传到另一个activity
我的方法没实现了
//set

bundle.putSerializable("myList", testArr);

.......
//get

Bundle bundle=this.getIntent().getExtras();
String[][] serializArray = (String[][])bundle.getSerializable("myList");

//ClassCastException

1个回答

j_clxy
j_clxy   2013.09.10 18:40
已采纳

第4,5行能编译通过吗?

for(String[] x:testArr){

这里的x是个一维数组。

    for (String[] x : testArr) {
        x[0] = "zhangsan " + i;
        x[1] = "list " + i;
        i++;
    }
j_clxy
j_clxy 这样啊,学习了。我在JDK上测试过直接造型String[][]是可以的,没在Android环境测试。这说明Android没有遵循标准的Serializable。
4 年多之前 回复
rocksent
rocksent 解决了,不能直接用二维数组接收,得用Object[][]来接收,因为就返回的是object,然后进一步解析,在国外论坛看到的贴子
4 年多之前 回复
j_clxy
j_clxy 那样的话,不该有问题啊。你可以先去掉(String[][])造型,先看看拿出来的是什么。有可能被同名的覆盖了吧?另外,推荐用List<Object>代替二维数组。
4 年多之前 回复
rocksent
rocksent 哦,不好意思,打错了,我是随手打的,希望说明的是传二维数组
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!