属性由属性键(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 |
|