我正在制作一个国际象棋应用程序,我为每个方块提供了一个类,例如:
公共广场{
public String squarecolor; // white or red
public int row, col;
public chesspiece myPiece = null; // null if empty
public ImageButton myButton;
public Drawable myDrawables[26];
}
在我的活动课中,棋盘上的每个方格都是一个图像按钮。每次我尝试引用方形类中的drawable或imagebutton我的程序崩溃。例如
public class NewGameActivity extends Activity {
square [][] chessboard = new square[8][8];
chessboard[0][0].myButton = (ImageButton) findViewById(R.id.aone);
}
有没有允许这样的东西工作?
答案 0 :(得分:1)
我认为这不是特定于Android的问题,而是一般的Java问题。
用
square [][] chessboard = new square[8][8];
你只为棋盘预留空间。你没有分配任何对象。
然后用
chessboard[0][0].myButton = ...
您尝试访问尚未自行分配的(0,0)对象,因此.myButton使其取消引用NULL - > NPE - >崩溃。
您需要先通过
分配字段chessboard[0][0] = new Square()
顺便说一句:你应该用大写字母Square