我有一个 TextView,我正在尝试使其显示基于 2d 字符的网格。在我的 Java 代码中,我创建了一个二维数组,我将该数组填充为字符串,并将每个条目一个接一个地附加,当到达数组行的末尾时,我还附加一个换行符 (.n)。通过这种方式,我然后获取充满数组中所有条目的大长单数字符串(按\n 的顺序)并执行 setText(string) 。这样,TextView 应该在显示屏上显示二维网格。它大致是这样的:顶行和底行都很好,但中间的每一行在该行的结束字符和左侧的某个位置(大约 13 个字符)之间都缺少空格。
以下是创建数组、用字符填充数组以及将该数组转换为长字符串的代码 fragment :
for(int row = 0; row < 22; row++){
for(int column = 0; column < 22; column++){
if(row == 0 || row == 21){
playField[row][column] = "#";
}else if(row > 0 && row < 21 ){
if(column == 0 || column == 21){
playField[row][column] = "#";
}else{
playField[row][column] = " ";
}
}
}
现在,将数组转换为字符串:
temp = new String();
for(int i = 0; i < 22; i++){
for(int j = 0; j < 22; j++){
temp+=playField[i][j];
}
temp+="\n";
}return temp;
这个字符串是我使用 text.setText(temp) 的,它可以工作,但它是这样的:# 在第 1 列中,大约 10 个空格(按预期),然后在第 13 列左右有另一个 #,以及然后是下一行。顶行全部是 22 个 # 符号,底行全部是 22 个 # 符号。
我在 xml 中设置了 textView:
<TextView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"/>
最佳答案
我认为问题是你没有声明你的 TextView 使用等宽字体,所以所有的空格都在那里,但它们没有 # 符号那么宽。
您可以像这样指定 TextView 的字体:
android:typeface="monospace"
关于java - 安卓编程: TextView isn't displaying full string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9709160/