我很难为我的自定义组件(扩展View)指定一个名为Tailor的样式。不同于我在互联网上遇到的例子,我不是用XML实例化我的组件,而是用代码来实现它。这是我目前的情况:
attr.xml 文件:
<declare-styleable name="Tailor">
<attr name="white_square" format="color" />
<attr name="white_square_margin" format="color" />
</declare-styleable>
styles.xml 文件:
<style name="tailor_default">
<item name="white_square">#FFF8C898</item>
<item name="white_square_margin">#FFF8D8B8</item>
</style>
活动的片段,我在其中实例化我的Tailor类:
public class TestActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(new Tailor(this, R.style.tailor_default));
}
}
Tailor 类:
public class Tailor extends View
{
public Tailor(Context context, int style)
{
TypedArray values = context.obtainStyledAttributes(style, new int[] {R.styleable.Tailor_white_square, R.styleable.Tailor_white_square_margin});
int whiteSquare = values.getColor(0, 0);
}
}
上面的whiteSquare没有返回正确的值,而是返回默认值0。
我不确定我做错了什么。