Android:如何在 onSaveInstanceState 期间保存 2d int 数组?

标签 android matrix multidimensional-array android-studio savestate

正如问题标题所说,我试图在 onSaveInstanceState 期间保存一个 2d int 数组,尝试了显而易见的方法:

outState.putIntArray("matrix",matrix);

得到:

Error:(58, 39) error: incompatible types: int[][] cannot be converted to int[]

我应该做什么?

最佳答案

您可以将其转换为一维数组并将行长度存储为单独的数组。例如。在伪 Java 中:

int[] sizes;
int[] values;
for (int[] row : matrix)
{
    values.append(row);
    sizes.append(row.length);
}

outState.putIntArray("matrix_values", values);
outState.putIntArray("matrix_sizes", sizes);

我想很可能您的行大小都相同,在这种情况下您可以使用单个整数。

关于Android:如何在 onSaveInstanceState 期间保存 2d int 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26926738/

相关文章:

java - 从网站扫描数据

c - 指向二维数组列的指针

Matlab,无循环的整数向量到二进制矩阵

c - 关于 C 中 3D 数组的问题

c - 在 C 中返回多维数组

javascript - 按 2 列对多维数组进行排序 - JavaScript

java - Android更改ActionBar文本颜色

java - Appium logcat 捕获失败 : spawn ENOENT (no spaces in path)

android - 修改android中音乐播放的速度

python - 两个巨大稠密矩阵的乘法 Hadamard-乘以一个稀疏矩阵