我正在从自定义 xml View 类型中检索自定义资源 ID。我被要求为检索指定一个默认的 int 值,并且想知道 ID 的范围是多少?它们总是正数还是包含零??
即 -1 是一个有效的“null”引用 AND/OR 是 0 一个有效的“null”引用吗?
谢谢
编辑
自定义 XML 资源/属性文件
<resources>
<declare-styleable name="ToggleImageButton">
<attr name="onImage" format="integer" />
<attr name="offImage" format="integer" />
</declare-styleable>
</resources>
在我的自定义 ui 的构造函数中定义
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ToggleImageButton);
int offResource = a.getInt(R.styleable.ToggleImageButton_offImage, -1);
基本上第二行末尾的 -1 是此数据类型的默认参数。它在开发时可能会或可能不会在 XML View 中初始化,这允许以这种方式指定默认行为。
最佳答案
根据the documentation, Resources.getIdentifier()
Returns 0 if no such resource was found. (0 is not a valid resource ID.)
更新(5 年后 thanks to Micer ):
- API 29+:Resources.ID_NULL 常量
- 旧 API:ResourcesCompat.ID_NULL
关于Android 资源 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5130789/