Android 基础库 - 属性系统 - 属性定义

属性由属性键(Key)定义,由属性值(Value)表示。属性键与属性值一一对应,但是属性值可能是空的(null)。

属性键

项目

边界

说明

基本定义

 

在属性键中定义

容器类

属性所属的类

定义该属性的类

名称

属性的名称

同一个属性集内,每个属性名称唯一

类型

属性的值的类型

 

标题

属性的显示标题

 

描述

属性的描述信息

 

访问控制

 

对应不同的属性键派生类

只读取

该属性是只读的

外部类可以读取,派生类可以设置

可设置

该属性是可写的

外部类可以读取、设置

可配置

该属性是可配置的

外部类可以读取、设置,可以通过字符串名称设置(配置写入)

序列化

Parcel

序列化容器类和名称

自定义项目

可由派生类自定义

 

字符串化

值 -> 字符串

字符串 -> 值

自定义方式(按次序):

  1. 属性集派生类
  2. 属性键派生类(一般匿名派生)
  3. 属性键构造传入(适用可选列表、显示标题)
  4. 默认根据类型处理

可选值列表

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fighting Horse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值