繁体   English   中英

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

[英]Trying ty change text in EditText within GridLayout

我正在尝试制作我的第一个应该是Sudoku求解器的应用程序。 我想我快到了,但是有一个问题我已经尝试解决了几个小时,因此,我正在与您联系。 我有一个带有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;
    }
}

问题是当我要为此将数字从矩阵传输到文本框时,我使用以下代码:

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);

在第一次迭代中。 为什么是这样? 先感谢您!

像这样更改代码,

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

否则,它将查找资源ID并崩溃。

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

尝试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM