Java 尝试在GridLayout中更改EditText中的文本
我正在尝试制作我的第一个应用程序,它应该是一个数独解算器。 我想我就快到了,但有一个问题我已经试着解决了好几个小时了,所以我要向你们求助。 我有一个带有81个文本框的网格布局。我可以使用以下方法将81个文本框中的数字转换为9*9矩阵:Java 尝试在GridLayout中更改EditText中的文本,java,android,Java,Android,我正在尝试制作我的第一个应用程序,它应该是一个数独解算器。 我想我就快到了,但有一个问题我已经试着解决了好几个小时了,所以我要向你们求助。 我有一个带有81个文本框的网格布局。我可以使用以下方法将81个文本框中的数字转换为9*9矩阵: private void writeToNbrs() { for (int i = 0; i < 81; i++) { int temp; try { temp = Integer.parseI
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;
}
}
在第一次迭代中。
为什么会这样?提前谢谢你 像这样更改代码
((EditText)layout.getChildAt(i)).setText(temp+"");
另一方面,它将查找资源id并崩溃。使用String.valueOf(temp)
将temp
转换为String
试试这个:
((EditText)layout.getChildAt(i)).setText(String.valueOf(temp));
非常感谢。这就解决了问题。但是为什么呢??对我来说没有任何意义,你可以使用字符串资源id(int)而不是实际的字符串。如果答案对你有帮助,请接受-
((EditText)layout.getChildAt(i)).setText(temp+"");
((EditText)layout.getChildAt(i)).setText(String.valueOf(temp));