@在AndroidManifest.xml文件中

时间:2009-06-19 14:50:07

标签: android xml

来自Rick Rogers的O'Reilly着作“Android应用程序开发”,John Lombardo,Zigurd Mednieks& Blake Meike,第23页:

 <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />

从第44页开始:

 <application android:icon="@drawable/icon2">

上述每个片段中@的含义是什么?

3 个答案:

答案 0 :(得分:7)

在这种情况下:

android:layout_width="fill_parent"

属性android:layout_width的值直接在引号fill_parent内指定。在另一种情况下:

android:text="@string/hello"

属性android:text="@string/hello"的值在别处指定。这由字符串开头的@表示。在此示例中,它是@string/hello。该值位于资源中。

来自Android开发者网站的The AndroidManifest.xml File中的“资源值”部分。可以从allclaws回答中的链接找到。

  

资源值以。表示   以下格式,

     

@ [包:]类型:名称

     

其中包名称可以省略   如果资源在同一个包中   作为应用程序,类型是一种类型   资源 - 例如“string”或   “drawable” - 而名字就是这个名字   识别特定资源。

答案 1 :(得分:6)

我倾向于将其视为与资源所在位置有关的缩写,因此:

在正常设置中,它将类似于:

@ drawable / icon = /PROJECT_ROOT/res/drawable/icon.png

@ string / hello = /PROJECT_ROOT/res/values/strings.xml(名为“hello”的元素)

这似乎是一个额外的麻烦,但它实际上运作得很好。它还支持国际化和不同的屏幕尺寸非常容易。您只需为不同的国家/地区代码和布局声明其他资源文件,Android就会为您选择最佳匹配项。

关于internationalization here的这份文件可能会让他们更清楚地明白为什么他们决定这样做。

答案 2 :(得分:0)