如何在没有应用程序崩溃的情况下声明和分配数组?

haz*_*994 -1 java arrays android loops object

基本上,我正在为我的13年级课程实现一个用于android的反转应用程序,这段代码用于设置这里显示为类位置数组的棋盘.但是,运行时,应用程序崩溃.

Position[][] board = new Position[7][7]; //declaring the board//

for(int n = 0; n < 8; n ++){

        ...


    for(int i = 0; i < 8; i++ ){
        final ImageView button = new ImageView(this);

        final int countN = n;
        final int countI = i;

        board[countI][countN].isPositionEmpty = true; //assigning a value//
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!!提前致谢!

Jon*_*eet 5

您只分配了一个7x7阵列,但是您尝试将其用作8x8阵列.

改用:

Position[][] board = new Position[8][8];
Run Code Online (Sandbox Code Playgroud)

或者最好有一个常数用于多个地方:

private static final int BOARD_SIZE = 8;

...
Position[][] board = new Position[BOARD_SIZE][BOARD_SIZESIZE];

for (int i = 0; i < BOARD_SIZE; i++)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

像这样的数组分配:

Foo[] array = new Foo[size];
Run Code Online (Sandbox Code Playgroud)

创建一个包含size元素的数组; 有效索引的范围为0到size - 1包含范围.