2012-03-14 135 views
1

我有一个TextView,我试图使显示一个基于2d字符的网格。在我的Java代码中,我创建了一个2d数组,我将该数组填充到字符串中,并将每个条目附加到另一个,并在达到数组行的末尾时添加换行符(.n)。用这种方法,然后我用数组中的所有条目(按照\ n的顺序)填充大长的单数字符串,并执行setText(string)。这样,TextView应该在显示器上显示一个2d网格。它的排序是这样的:顶行和底行都很好,但是在行之间的每一行之间都没有空格,在行的末尾字符和左侧的某处(大约13个字符)之间没有空格。Android编程:TextView不显示完整字符串

这里是从使阵列,其中的字符填充它,并且使该阵列变成一个长字符串的代码片断:

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#号。

我有我的TextView在XML设置如下:

<TextView 
    android:id="@+id/grid" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true"/> 

回答

0

我认为问题是,你没有宣布你的TextView使用等宽字体,因此,所有的空间是有的,但他们没有#符号那样宽。

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

android:typeface="monospace" 
+0

哇哈哈,现在是如此明显!非常感谢! – FeralShadow 2012-03-14 21:17:00