如果您正在开发Android应用程序,您将在视图和布局的xml文件中遇到这样的id命名:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/new_game"
android:icon="@drawable/ic_new_game"
android:title="@string/new_game" />
<item android:id="@+id/quit"
android:icon="@drawable/ic_quit"
android:title="@string/quit" />
</menu>
我真的很想知道为什么这样的命名应用于id。是因为Linux?这命名是什么意思 - @+id/...
- 有?
当我查看android:icon
属性时,我可以解释为ic_new_game
位于drawable文件夹下,而@
表示“位于”或我只是假设。
但命名id属性有点不同,因为它们也有+
符号。有人可以帮我理解这个惯例吗?
感谢。
答案 0 :(得分:5)
这只是Android开发人员定义的命名约定。 +
仅在您要为某些内容定义新ID时使用。否则,您只需参考@id/...
。
@drawable/...
和@string/...
仅代表对某些资源的引用。哪些可绘制引用会自动为驻留在.png
目录中的.jpg
,.gif
,.xml
和drawable
文件创建。文件的文件名将是标识符。
如果存在包含像<string name="some_name">Some Name</string>
这样的字符串标记的XML文件,则会创建字符串引用。字符串的标识符将是您定义为name参数的标识符。在此示例中,它将是@string/some_name
。
同样适用于您的布局。您可以通过@layout/...
访问它们。
据我所知,它与Linux无关,或者至少我对Linux不了解。
关于这一点的有趣读物是Accessing Resources在开发者网站上。