Программирование Android: TextView не отображает полную строку

1

У меня есть TextView, который я пытаюсь сделать отображением 2d-символьной сетки. В моем Java-коде я создал массив 2d, я беру этот массив, заполненный строками, и добавляю каждую запись рядом с другой, и когда конец строки массива достигнут, я также добавляю символ новой строки (.n). Таким образом, я затем беру большую длинную сингулярную строку, полную всех записей в массиве (в порядке с \n) и do setText (строка). Таким образом, TextView должен отображать на экране 2-мерную сетку. Это похоже на то, что верхняя строка и нижняя строка являются точными, но каждая строка между ними пропускает пробелы между конечным символом в строке и где-то (приблизительно 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) on, и она работает, но она выглядит следующим образом: # в столбце 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"/>
Теги:

1 ответ

0
Лучший ответ

Я думаю, проблема заключается в том, что вы не объявили свой TextView использовать моноширинный шрифт, поэтому все пробелы есть, но они не такие широкие, как символ #.

Вы можете указать шрифт TextView следующим образом:

android:typeface="monospace"
  • 0
    Ха-ха, теперь это так очевидно! большое спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню