属性由属性键(Key)定义,由属性值(Value)表示。属性键与属性值一一对应,但是属性值可能是空的(null)。
属性键
项目 |
边界 |
说明 |
基本定义 |
|
在属性键中定义 |
容器类 |
属性所属的类 |
定义该属性的类 |
名称 |
属性的名称 |
同一个属性集内,每个属性名称唯一 |
类型 |
属性的值的类型 |
|
标题 |
属性的显示标题 |
|
描述 |
属性的描述信息 |
|
访问控制 |
|
对应不同的属性键派生类 |
只读取 |
该属性是只读的 |
外部类可以读取,派生类可以设置 |
可设置 |
该属性是可写的 |
外部类可以读取、设置 |
可配置 |
该属性是可配置的 |
外部类可以读取、设置,可以通过字符串名称设置(配置写入) |
序列化 |
Parcel |
序列化容器类和名称 |
自定义项目 |
可由派生类自定义 |
|
字符串化 |
值 -> 字符串 字符串 -> 值 |
自定义方式(按次序):
|
可选值列表 |
E[] String[] |
|
值标题 |
可传入可选值的标题 String[] |
|
|
|
|
|
|
|
属性值
针对属性值的处理,主要与值的类型有关:
项目 |
边界 |
说明 |
属性值封装 |
|
为了通过AIDL传递 |
外部类 |
插件类加载器 |
附带外部插件ClassLoader信息(插件包名) |
Parcel化 |
|
特殊类型Parcel的扩展处理 |
Parcelable |
属性集 其他 |
需要找到定义了CREATOR的基类,作为序列化的类型;属性集可以直接找到CREATOR的基类 |
Parcelable[] |
属性集 其他 |
同上,另外反序列化需要转换数组类型 |
Object[] |
|
反序列化需要转换数组类型 |
Serializable |
|
修复Android 4.4及以下不支持外部类 |
Class |
|
类名称 |
ClassLoader |
|
插件包名 |
字符串化 |
|
与字符串的转换 |
null |
|
<null> |
基本型 |
int |
Integer.valueOf |
Enum |
|
Enum.valueOf |
基本型数组 |
int[]等 |
Arrays.toString [a,b,c] |
Object数组 |
深度化 |
Arrays.deepToString [a,b,c] |
泛型数组 |
|
|
泛型Map |
|
|
其他 |
|
String.valueOf E.valueOf(String) new E(String) |
可选值 |
Boolean Enum |
|