先把错误信息发几条吧,劳烦大家看一下:
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过了。错误原因真不是很清楚。先在这里谢过了

解决方案 »

  1.   

    我就是奇怪这个,我压根没用除法,源代码我如下:
    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));
    } }
      

  2.   

    能详细点说么?我设置width和height都是wrap_content
      

  3.   

    [size
    [align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center][align=center]