UI组件的定义和引用
在android应用程序中,ui中的各个组件最终将在activity中呈现,而在这个呈现过程之前,用户首先必须对对其进行定义,包阔属性与布局方式等,然后在程序中实例化并引用,才可以最终显示。
一、UI组件的定义
1.在xml中定义界面元素
在android中通过xml标记就可以定义该标记对应的视图类或者子类。
例如:xml中的<Button>,标记,就可以对应一个按钮实例,而这个对应过程可以由android软件自动完成,这样就实现了xml与java代码具有等同的效果。
这种直接通过xml标记定义界面组件的机制,实现了界面代码与逻辑代码分开的效果。
2.在java代码中定义界面元素
这种方式比较常见,即在代码中通过new语句初始化一个类实例,然后设置其属性,调用其方法(老师上课时就用的时此种方法定义元素)
二、UI组件的引用
在android平台,对于通过aml文件定义界面元素的方式。组件对象的实例化过程由 android 平台自动完成。但是,android平台没有直接返回对象句柄,那么开发者如何引用这些已经实例化的对象呢?
在这个问题上,资源打包工具通过分析定义组件在的xml文件来自动生成组件的标识列表,如下所示的id类:
public static final class id{
public static final int textview01=ox7f050000;
}
同时也生成了资源标识列表,并将所有的标识封装到资源类R
三、UI组件的属性与id
在android平台,每一个视图类及其子类由多个xml属性,这些xml属性就是用来定义该类的实例对象的成员内容,一般来说对于组件的xml属性,都有对应的运行时方法。
组件id是一个特殊的属性,用于区分组成屏幕的视图树中的各个组件,id属性的属性名为“android:id”,其设置属性值的语法为:
android:id=“@+id/<组件id>”
其中“@”、“+”、“/”符号是android特有的资源定义符号。“/”为分隔符,“@”字符表示“/”之后的内容是组件的id字符串,“+”字符标示该资源必须创建并添加到资源中。
在运行时java代码中,该组件的id完整表示为:R.id<组件id>,在xml中进行引用的一般表示为:“@/id/<组件id>”,没有“+字符表示无需创建,仅仅是引用。”