2012-03-14 64 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