Android资源ID

时间:2011-02-27 01:22:45

标签: android resources

我正在从自定义xml视图类型中检索自定义资源ID。我被要求为检索指定一个默认的int值,并想知道ID的范围是多少?它们总是积极的还是包含零?

即-1是有效的“空”引用AND / OR是0有效的“空”引用?

由于

修改

自定义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视图中初​​始化,这允许以这种方式指定默认行为。

3 个答案:

答案 0 :(得分:79)

根据the documentation, Resources.getIdentifier()

  

如果没有这样的资源,则返回0   被找到。 (0不是有效的资源ID。)

所以你可以使用0。

答案 1 :(得分:9)

0是资源ID的空/无效值。

答案 2 :(得分:1)

根据https://developer.android.com/reference/android/content/res/Resources#ID_NULL0与在XML中设置@null相同,这意味着您可以在需要清除资源时使用它。

这是无效的资源ID。