在GridLayout中的EditText中尝试更改文本

时间:2017-05-05 15:58:57

标签: java android

我试图制作我的第一款应该是数独求解器的应用程序。 我想我几乎就在那里,但有一个问题,我现在试图解决几个小时,因此我会联系你。 我有一个带有81 TextBox的GridLayout。我使用以下方法将数字从81 TextBox转移到9 * 9矩阵没有问题

private void writeToNbrs() {
    for (int i = 0; i < 81; i++) {
        int temp;
        try {
            temp = Integer.parseInt(((EditText) layout.getChildAt(i)).getText().toString());
        } catch(Exception e){
            temp = 0;
        }
        int a = i/9;
        int row = a;
        int col = i%9;
        nbrs[row][col] = temp;
    }
}

问题是当我想将数字从矩阵传输到TextBoxes时,我使用以下代码:

private void writeToText(){
    for(int row = 0; row<9; row++){
        for(int col = 0; col<9; col++){
            int temp = nbrs[row][col];
            int i = row*9+col;
            ((EditText)layout.getChildAt(i)).setText(temp);

        }
    }
}

我对调试器不是很熟悉,但我已经尝试过使用它,现在我知道它崩溃了:

((EditText)layout.getChildAt(i)).setText(temp);

在第一次迭代期间。 为什么是这样?提前谢谢!

2 个答案:

答案 0 :(得分:0)

更改此代码,

((EditText)layout.getChildAt(i)).setText(temp+"");

其他方面,它会查找资源ID并将崩溃。

答案 1 :(得分:0)

使用String.valueOf(temp)temp转换为String

试试这个:

((EditText)layout.getChildAt(i)).setText(String.valueOf(temp));