Почему TextView не может отображать форматированный текст, ссылающийся на ресурсы Android? - PullRequest
1 голос
/ 19 апреля 2019

Я пытаюсь отобразить текст, который я установил в TextView. Я уже назначил строку в strings.xml с именем operator_mixed

strings.xml

<string name="operator_mixed">%d  %s %d  %s %d</string>

И в моем файле initialize.java я пытался ссылаться на эту строку, но она ничего не отображает. Однако, когда я пытаюсь отобразить текст без какого-либо форматирования, это вроде работает, но я знаю, что объединение строк в textview не является предпочтительным .

Initialize.java

textview.setText(getString(R.string.operator_mixed, a1, operator1, a2, operator2, a3));

Где a1, a2, a3 - целые числа, а operator1, operator2 - строки.

Есть ли проблемы с моим кодом?

Ответы [ 3 ]

0 голосов
/ 19 апреля 2019

Я только что попробовал этот код в своем приложении.

string.xml: (такой же, как ваш)

<string name="operator_mixed">%d  %s %d  %s %d</string>

MyActivity.java

int a1 = 10;
int a2 = 20;
int a3 = 30;
String operator1 = "Operator 1";
String operator2 = "Operator 2";

my_txt_title.setText(getResources().getString(R.string.operator_mixed, a1, operator1, a2, operator2, a3));

Работаетхорошо.

enter image description here

0 голосов
/ 19 апреля 2019

Я понял это.Мне просто нужно передать контекст следующим образом:

textview.setText(c.getResources().getString(R.string.operator_mixed, a1, operator1, a2, operator2, a3))

здесь c является контекстом MainActivity.

0 голосов
/ 19 апреля 2019

Попробуйте с ниже

<string name="operator_mixed">%d  %s %d  %s %d</string>
textview.setText(String.format(getString(R.string.operator_mixed),a1,operator1,a2,operator2,a3)));

Вы должны использовать String.format()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...