Android编程:TextView没有显示完整的字符串

时间:2012-03-14 19:50:22

标签: java android

我有一个TextView,我试图显示一个基于2d字符的网格。在我的Java代码中,我创建了一个二维数组,我将该数组填充为字符串,并将每个条目一个接一个地追加到另一个,当到达数组行的末尾时,我还附加一个换行符(.n)。通过这种方式,我接着填充数组中所有条目的大长单数字符串(按照\ n的顺序)并执行setText(string)。这样,TextView应该在显示器上显示2d网格。它排序是这样的:顶行和底行都很好,但是行之间的结束字符和左侧的某处(大约13个字符)之间的每一行都缺少空格。

以下是制作数组的代码片段,用字符填充它,并将该数组转换为长字符串:

    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"/>

1 个答案:

答案 0 :(得分:0)

我认为问题在于你没有声明你的TextView使用等宽字体,所以所有空格都在那里,但它们不像#符号那么宽。

您可以像这样指定TextView的字体:

android:typeface="monospace"