values文件下下面放了很多xml,比如建立一个4.0的project,就会有strings.xml、dimens.xml、styles.xml。而且自己也可以添加,比如以后学Spinner组件等可以可能会用到自己做的xml文件。
android:text="@string/button1“的”string“不是直接的文件夹名字,是ADT下管理的一个键值映射,提供的”@string“找到这个string键然后这个键对应的值是”strings.xml“这个文件。一种映射关系,而不是直接的对应,就和数据库开发中的三层模式似的(当然比喻不大妥当)。
包括引用style也不是@styles而是@style,ADT通过用户提供的键”style“找到对应的值即”style.xml“文件。再举个例子,比如你要为ImageView添加一个图片,会在布局文件中写这么一句
android:src="@drawable/pic"但是你看看有没有”drawable“这个文件夹的?没有,而是”drawable-hdpi“等一系列文件夹。具体内部是ADT自己通过映射找到的。
安卓会遍历values文件夹下的所有resources下的strings
也就是说即使你的文件名不叫strings.xml,或者有多个xxxstring.xml文件也是能够读出的
而@string/button1表示button1的id,是根据button1的id读取string