2014-12-08 5 views
0

У меня есть простая кнопка с текстом
Если в android: текст Я обращаюсь к строке, она работает так, как она полагает.
Ссылаясь на строку через R.string

<Button 
      android:id="@+id/true_b" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/true_button" /> // OK 



    <Button 
       android:id="@+id/true_b" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@id/R.string.true_button" /> // doesn`t output anything 

Однако, если я пытаюсь обратиться к моей строке через R.string. «Название строки» ничего не происходит
Объясните мне, пожалуйста, где я не хватает ...

л

ответ

1

Есть несколько вещей, которые вы здесь делаете неправильно. Для ссылки на строку в XML вы должны использовать

android:text="@string/string_name" 

@string со ссылкой на файл string.xml и string_name быть имя, которое вы заявили.

Это то, что линия требуется string.xml будет выглядеть

<string name="string_name">This is a string you are referencing!r</string> 

Кроме того, я никогда не пытался назвать ресурс с. разделяя слова. Это может привести к ошибке, но я не уверен на 100%.

Редактировать: michal.z невероятно корректен, когда говорит, что вы не можете ссылаться на R. или android.R. ресурсов из XML. вы используете их только в том случае, если вы пытаетесь ссылаться на ресурс программно.

+0

Вы только когда-либо используете R.id, если вы пишете код в java. В любое время, когда вы хотите ссылаться на НИЧЕГО через XML, вы используете стиль, как указано выше. Для строк используйте @ string/string_name. Цвета: @ color/color_name. массивы - это @ array/array_name и т. д. Синтаксис всегда @ reference_file/variable_name – Dacotah

+0

И когда мы ссылаемся на id: ** ... = "@ id/any_id **, получаем ли мы доступ к R.id? – Anarantt

+0

Технически вы ... в XML-высказывании = "@ id/any_id" это то же самое, что сказать (R.id.any_id) в Java. – Dacotah

0

В XML вы используйте @+id/ или @id/, чтобы указать идентификатор, который должен иметь ваш View или ссылаться на View, ранее объявленный в XML. Вы не можете ссылаться на класс R в XML-коде, потому что на самом деле R-класс создается на основе ваших ресурсов, определенных в XML. Таким образом, он недоступен в XML.

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