将多行String排列成textView

时间:2011-12-11 13:02:32

标签: android textview string.format text-formatting text-alignment

我在将文本格式化为TextView字段时遇到问题。我正在使用数据库中的数据填充字符串,我想让它排成一行:

for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
SomeString = SomeString + String.format("|%1$-4s|%2$-12s|%3$-10s|\n",
    cursor.getString(someColumn1),
    cursor.getString(someColumn2),
    cursor.getString(someColumn3));
    }
Return SomeString

比我将此字符串设置为textView字段。 实际上,它看起来像这样:

|SomeColumn1|SomeColumn2|SomeColumn3|  
|SomeColumn1|SomeColumn2StringLonger|SomeColumn3|    
|SomeColumn1|ShorterC2|SomeColumn3|

这应该是这样的:

|SomeColumn1-----|SomeColumn2-----|SomeColumn3|  
|SomeColumn1-----|SomeLargerString|SomeColumn3|  
|SomeColumn1-----|Shorter---------|SomeColumn3|  

我尝试过String.format("|%1$.4s|%2$.12s|%3$.10s|\n")

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

只需添加以下行:

android:typeface="monospace"

进入textView xml定义,格式化现在可以正常工作。

关于单个字符的宽度。白色空间明显比其他标志短。 Monospace使角色具有相同的宽度。这一切都很简单。

干杯!