2010-10-24 2 views
4

Я преподаю себе Android с помощью Eclipse, плагина Android и книги «Учите свое развитие Android». У меня есть эта странная небольшая проблема. Я смог создать xml-файлы в каталоге res/values, где хранятся строки и значения цвета (colors.xml и strings.xml). Я мог ссылаться на эти значения в свойствах моих экранов Android (xml в res/layout), например, устанавливая свойства «Текст» и «Цвет текста» со ссылками типа «@ string/topTitle» и «@color/titleColor ", где topTitle и titleColor определены в xml-файлах.Eclipse + Android не распознает мои значения (размерность)

НО: Когда я создаю файл с названием "dimens.xml" и размер шрифта в нем, Eclipse правильно помещает этот файл в res/values, но когда я пытаюсь ссылаться на эти значения, например. "@ dimension/titleFont" Я получаю сообщение об ошибке "Ресурс не найден, который соответствует указанному имени." Я пробовал много разных имен, я пробовал «@dimens» вместо типа, все равно ничего. Если я перейду в XML-файл макета и явно поставлю его на размер шрифта, например. 22pt, он работает.

Итак, Eclipse распознал мой файл «dimens.xml», когда я сделал его достаточно хорошо, чтобы поместить его в res/values, и позволяет мне редактировать его и показывать его в полном размере (измерения). Он просто не узнает, что я ссылаюсь на него в других xml-файлах.

Книга, которую я использую, фактически не показывает пример измерения, поэтому я должен делать что-то неправильно. Я проверил документы Android, но не видел никаких проблем.

Любая помощь приветствуется. Благодарю.

ответ

8

Правильный способ обратиться к переменной размерности (хранится в вашем dimens.xml (не думаю, что имя здесь действительно имеет значение, хотя, это то, что внутри, что делает)) из другого файла XML, как это:

"@dimen/nameOfVariable" 

Обратите внимание, что она не является ни размер, размеры или Dimens, но dimen!

Если вы посмотрите в файл XML, где у вас есть свои ценности, это будет иметь смысл, как dimen это имя XML-элементов, хранящих значения измерений:

<?xml version="1.0" encoding="utf-8"?> 
<resources xmlns:android="http://schemas.android.com/apk/res/android"> 
    <dimen name="someDimension">5dp</dimen> 
    <dimen name="anotherDimension">10dp</dimen> 
</resources> 
+0

СПАСИБО! ПРОБЛЕМА SOLVED-- теперь работает. Поэтому я использую имя элемента XML, должен подумать об этом ... – Tim

+0

@Tim: Рад, что я мог бы помочь! Вы должны отметить этот ответ как принятый, так как он решил вашу проблему. А также подумайте над голосом, если найдете, что это хороший ответ :) – Nailuj

+0

Я рад отметить вопрос как ответ и дать вам голосование (чтобы вы могли сохранить их, чтобы получить бесплатный тостер или независимо от того, что), но я не вижу, где выполнять эти задачи на странице ... – Tim

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