我试图制作我的第一款应该是数独求解器的应用程序。 我想我几乎就在那里,但有一个问题,我现在试图解决几个小时,因此我会联系你。 我有一个带有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);
在第一次迭代期间。 为什么是这样?提前谢谢!
答案 0 :(得分:0)
更改此代码,
((EditText)layout.getChildAt(i)).setText(temp+"");
其他方面,它会查找资源ID并将崩溃。
答案 1 :(得分:0)
使用String.valueOf(temp)
将temp
转换为String
试试这个:
((EditText)layout.getChildAt(i)).setText(String.valueOf(temp));