Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Eclipse + Android not recognizing my (dimension) values

I am teaching myself Android using Eclipse, the Android plug-in, and Sams "Teach Yourself Android Development" book. I have this weird little problem. I've been able to create xml files in the res/values directory that hold strings and color values (colors.xml and strings.xml). I have been able to reference these values in the properties of my Android screens (the xml in res/layout), for example setting the "Text" and "Text color" properties with references like "@string/topTitle" and "@color/titleColor," where topTitle and titleColor are defined in the xml files.

BUT: when I create a file called "dimens.xml" and have font sizes in it, Eclipse correctly puts this file in res/values, but when I try to reference these values, e.g. "@dimension/titleFont" I get an error "No resource found that matches the given name." I've tried lots of different names, I've tried "@dimens" instead of the type, still nothing. If I go into the layout xml file and set it explicitly to a font size, e.g. 22pt, it works.

So Eclipse recognized my "dimens.xml" file when I made it well enough to put it in res/values, and lets me edit it, and shows it full of (dimension) values. It just doesn't recognize my referring to it in other xml files.

The book I'm using doesn't actually show a dimension example so I must be doing something wrong. I checked the Android docs but couldn't see any problem.

Any help appreciated. Thanks.

like image 510
Tim Avatar asked Feb 26 '23 00:02

Tim


1 Answers

The correct way to refer to a dimension variable (stored in your dimens.xml (don't think the name here really matters though, it's what's inside that does)) from another xml file is like this:

"@dimen/nameOfVariable"

Notice that it is neither dimension, dimensions or dimens, but dimen!

If you look inside your xml file where you have your values, this will make sense as dimen is the name of the xml elements storing dimension values:

<?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>
like image 139
Julian Avatar answered Mar 08 '23 09:03

Julian