Android:如何在R.java中声明样式?

时间:2012-07-18 12:14:47

标签: android

我正在尝试使用此ViewPager extension。这个插件帮助我使用SwipeyTab。我成功地将示例作为单个应用程序运行。所以我想将扩展程序集成到我的应用程序中。然后我修改了java文件并更改了包名称,一切都很好。但我在这些方面遇到了一些错误:

mTextColorCenter = a.getColor(R.styleable.ViewPagerExtensions_textColorSelected, mTextColorCenter);
mLineColorCenter = a.getColor(R.styleable.ViewPagerExtensions_lineColorSelected, mLineColorCenter);
mLineHeightSelected = a.getDimensionPixelSize(R.styleable.ViewPagerExtensions_lineHeightSelected, mLineHeightSelected);

Eclipse说:Styleable cannot be resolved or is not a field。包含样式的其他行也会产生相同的错误。如果我尝试点击解决此问题,则不会发生任何变化。

当我查看扩展名的R.java文件时,我看到了这些行:

public static final class styleable {
    public static final int[] ViewPagerExtensions = {
        0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003,
        0x7f010004, 0x7f010005, 0x7f010006, 0x7f010007,
        0x7f010008, 0x7f010009, 0x7f01000a
    };

    public static final int ViewPagerExtensions_dividerColor = 7;

    // there is more 
}

我知道编辑R.java是不可能的。我如何在R.java中为此扩展定义样式?有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您应该在单独的xml文件中定义您需要的属性。我的意思是创建一个values.xml并使用<declare-styleable name="ViewPagerExtensions"></declare-styleable>标签。

让我举个例子:

<declare-styleable name="ViewPagerExtensions">
    <attr format="integer" name="dividerColor" />
</declare-styleable>

顺便说一句,项目中已有attrs.xml,check it out