我在适配器中有一个名称列表。当名称被突出显示并且名称太长(超过2个单词)时,我需要将第二个单词的间隙之后的单词移动到下一行,使得在新行中移动的单词保持相同的空格适配器中的下一个名称。
示例是,将列表中的名称列表视为 -
。的亚历
。 Martin Kooper Well
。托马斯
(如你所见,当第一个名字突出显示时,因为它少于2个字,我不需要任何东西)
现在,
。亚历
。 Martin Kooper
好
。托马斯
(如你所见,当第二个名字突出显示时,因为它超过2个单词,我需要将第三个单词Well
放在下一行。它应该与列表中的下一个元素Thomas保持相同的间距)
答案 0 :(得分:0)
你可以使用Split()来实现这个
String string = "android iPhone Windows";
String[] parts = string.split(" ");
您可以在此检查数组大小。如果size / 2> 1然后你可以添加“\ n”并将字符串添加到String缓冲区,然后设置为listview textview
希望这会对你有所帮助。
答案 1 :(得分:0)
在白色空间的基础上拆分字符串并将其存储在数组中。
做以下事情
String name = "Martin Kooper Well";
String[] newname = name.split(" ");
if (newname.length>2)
name = newname[0] +" " +newname[1] + "\n" +newname[2];
答案 2 :(得分:0)
尝试
String name = "some person name".trim();
if(name.indexOf(" ") != name.lastIndexOf(" ")) {
int secondSpacePos = name.indexOf(" ", name.indexOf(" ") + 1);
name = name.substring(0, secondSpacePos) + "\n " + name.substring(secondSpacePos);
}
答案 3 :(得分:-1)
您应该在视图布局中执行此操作。为2行文本视图指定足够的项目视图高度。当粗体名称(或甚至非常大的名称)没有足够的水平空间时,文本将自动分割以使用第二行。指定高度,您将拥有所有相同的项目。
<TextView
android:id="@+id/myText"
android:layout_height="50dp"
android:layout_width="match_parent"
android:maxLines="2"
android:lines="2"/>