2015-01-28 3 views
0

Я пытаюсь объединить строку, объявленную в XML, с другой строкой, но она просто отображает идентификационный номер. Что я делаю не так?R.string.name не отображается правильно

TextView tv2 = (TextView) findViewById(R.id.textView2); 
tv2.setText(R.string.task_name + " " + t.getName()); 

Выход:

2131034123 Sleep 
+1

Класс 'r' содержит только статические идентификаторы ресурсов. Откройте его и посмотрите. В этом нет ничего особенного, это просто еще один класс Java. – Simon

+0

если вы посмотрите на 'R.string.task_name', вы увидите, что это int. – njzk2

ответ

0

Попробуйте что-то вроде этого:

tv2.setText(getApplicationContext().getResources().getString(R.string.task_name) + " " + t.getName()); 
2

Вы должны отобразить его через контекст. Link.

context.getString(R.string.MY_STRING); 
+0

Должен ли я получить контекст для каждого TextView или другого объекта, когда я его создаю? Или лучше всего получить контекст, когда мне нужно выполнять такие операции, как сейчас? –

+0

'getString' - это метод 'Context', поэтому вы используете его только при необходимости :) – Simon

+0

Как указывали другие, вы можете быстро получить его из своих действий через' getApplicationContext() '. – PDizzle745

Смежные вопросы