先把错误信息发几条吧,劳烦大家看一下:
06-01 08:17:26.173: ERROR/AndroidRuntime(565): java.lang.ArithmeticException: divide by zero
06-01 08:17:26.173: ERROR/AndroidRuntime(565): at android.widget.TableLayout.mutateColumnsWidth(TableLayout.java:576)
06-01 08:17:26.173: ERROR/AndroidRuntime(565): at android.widget.TableLayout.shrinkAndStretchColumns(TableLayout.java:565)
06-01 08:17:26.173: ERROR/AndroidRuntime(565):at android.widget.TableLayout.onMeasure(TableLayout.java:428)
这个错误是在动态加载"雷区",加载完9行9列后出现的问题,debug过了。错误原因真不是很清楚。先在这里谢过了
06-01 08:17:26.173: ERROR/AndroidRuntime(565): java.lang.ArithmeticException: divide by zero
06-01 08:17:26.173: ERROR/AndroidRuntime(565): at android.widget.TableLayout.mutateColumnsWidth(TableLayout.java:576)
06-01 08:17:26.173: ERROR/AndroidRuntime(565): at android.widget.TableLayout.shrinkAndStretchColumns(TableLayout.java:565)
06-01 08:17:26.173: ERROR/AndroidRuntime(565):at android.widget.TableLayout.onMeasure(TableLayout.java:428)
这个错误是在动态加载"雷区",加载完9行9列后出现的问题,debug过了。错误原因真不是很清楚。先在这里谢过了
private void loadMainField() {
mineField = (TableLayout) findViewById(R.id.boomfield);
createMineField();
showMineField();
} /** 创建雷区 */
private void createMineField() {
System.out.println("进入create!");
blocks = new Block[numberOfRowsInMineField + 2][numberOfColumnsInMineField + 2];
for (int row = 0; row < numberOfRowsInMineField + 2; row++) {
for (int column = 0; column < numberOfColumnsInMineField + 2; column++) {
blocks[row][column] = new Block(this);
blocks[row][column].setDefaults();
} }
} /** 动态加载雷区界面 */
private void showMineField() {
System.out.println("进入动态加载雷区!");
for (int row = 1; row < numberOfRowsInMineField + 1; row++) {
System.out.println("row " + row);
TableRow tableRow = new TableRow(this);
tableRow.setLayoutParams(new LayoutParams(
(blockDimension + 2 * blockPadding)
* numberOfColumnsInMineField, blockDimension + 2
* blockPadding));
for (int column = 1; column < numberOfColumnsInMineField + 1; column++) {
/*
* blocks[row][column] = new Block(this);
* blocks[row][column].setDefaults();
*/
System.out.println("column " + column);
blocks[row][column].setLayoutParams(new LayoutParams(
blockDimension + 2 * blockPadding, blockDimension + 2
* blockPadding));
blocks[row][column].setPadding(blockPadding, blockPadding,
blockPadding, blockPadding);
tableRow.addView(blocks[row][column]);
}
mineField.addView(tableRow, new TableLayout.LayoutParams(
(blockDimension + 2 * blockPadding)
* numberOfColumnsInMineField, blockDimension + 2
* blockPadding));
} }