Почему TextView не может отображать форматированный текст, ссылающийся на ресурсы Android?

1

Я пытаюсь отобразить текст, который я установил в 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 - строки.

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

Теги:
android-studio
android-resources

3 ответа

0

Я понял. Мне просто нужно передать контекст как это:

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

здесь c - контекст MainActivity.

0

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

<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()

  • 0
    Нет пользы. Это не работает.
  • 0
    Вы пытались использовать отладчик для проверки выполнения строки? Этот код должен работать. Может быть, строка просто не выполняется?
Показать ещё 3 комментария
0

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

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));

Работает нормально.

Изображение 174551

  • 0
    Я знаю, что это правильный синтаксис, и я знаю, что он должен работать, но я предполагаю, что есть какая-то проблема с файлами синхронизации для Android Studio или что-то в этом роде. Уверен, что код идеален, поскольку он отображает строку, вставленную непосредственно в него. Спасибо для помощи я буду смотреть на это. Как-то он отображает точный текст в strings.xml, когда я делаю это. textview.setText (R.string.operator_mixed)
  • 0
    Ваша проблема решена?

Ещё вопросы

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