关于这些属性:
android:id
为视图提供一个唯一的标识,你可以在代码中通过这个标识引用这个对象,比如读取和操纵对象。(你会在下一个课程中看到)
当你要从XML中引用资源对象时,@符号是必须的,它后面跟着资源类型,一个斜线,然后是资源的名称。
当你第一次定义一个资源ID的时候,在资源类型前加一个+号是必须的。当你编译程序时,SDK工具会使用这个ID名称在项目中的gen/R.java文件中创建一个新的资源ID,这个新的资源ID引用对应的EditText元素。一旦使用这个方法声明了资源ID,使用这个ID的使用就不需要加号了。使用加号仅仅是在指定一个新的资源ID时是必须的,对于实体资源来说不是必须的,比如字符串或者布局。
android:layout_width和android:layout_height
这里使用"wrap_content"代替具体的宽高值来指定视图的大小,意思是和填充这个视图的内容一样大。如果你使用"match_parent"的话,EditText会填满整个屏幕,因为它会和它的父视图LinearLayout一样大。更多信息可以查看Layouts。
android:hint
这个属性的值会在文本域为空的时候显示。这里使用"@string/edit_message"代替一个固定的字符串,它的值在一个单独的字符串资源文件中定义。因为使用的是实体资源(不仅仅是标示符),所以不需要加号。当然,因为你还没有定义一个字符串资源,所以你会看到一个编译错误。下面章节我们会定义一个字符串资源。
提示:这个字符串资源和元素ID使用了相同名称:edit_message,不过,引用资源的时候会通过资源类型定义作用域(比如id或者string),所以使用相同的名称不会造成冲突。