Добавить более одной строки в TextView - PullRequest
6 голосов
/ 17 ноября 2010

У меня есть несколько строк в xml, например

<string name="String1">My String 1</string>
<string name="String2">My string 2</string>

, и я хочу показать в упражнении что-то вроде Моя строка 1: Моя строка 2

Можно ли добавить к тому же TextView больше, чем

<TextView android:text="@string/String1"/>
<TextView android:text=": "/>
<TextView android:text="@string/String2"/>

Проблема в том, что если вы вставляете их в TableLayout, они рассматриваются как ячейки, а символ ":" не записывается следующимв String1 (он написан в середине обеих строк).

Возможно ли объединить строку только в одном TextView в коде xml (без этого программно в Java)?Я имею в виду, есть ли синтаксис для добавления строк что-то вроде

<TextView android:text="@string/String1+:+@string/String2"/>

Спасибо

Ответы [ 4 ]

9 голосов
/ 17 ноября 2010

Вы не можете сделать это прямо в XML, это лучшее, что вы можете сделать:

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>


Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
1 голос
/ 17 ноября 2010

Я не на 100%, но я не думаю, что возможно иметь более одного андроида: текст на TextView.

Если у вас будет три TextView, вам нужно добавить что-то похожее на String2 (или любое другое представление, имеющее «: »:

android:layout_toRightOf="@id/string1"
0 голосов
/ 18 ноября 2010

Посмотрите на API для TableRow :

android:layout_span - определяет, сколько столбцов должен охватывать этот дочерний элемент.

Так что я думаю, вы могли бы использовать что-то вроде:

<TableRow android:layout_span="3">
  <TextView android:id="@+id/your_entire_string" />
</TableRow>

Затем в вашем Activity найдите TextView по идентификатору и заполните ("Моя строка 1" + ":" + "Моя строка 2").

0 голосов
/ 17 ноября 2010

См. связанный вопрос Я задавал ранее.

Невозможно сделать что-либо необычное со строками в XML. Вы должны сделать это в Java.

...