Android:以编程方式创建自定义组件并不反映应用的样式

时间:2017-11-18 11:13:13

标签: java android android-layout

创建了一个扩展AppCompatButton的自定义按钮。以下是使用的构造函数:

public CustomButton(Context context)
{
    this(context, null);
}

public CustomButton(Context context, AttributeSet attrs)
{
    this(context, attrs, R.style.customStyle);
}

public CustomButton(final Context context, final AttributeSet attrs, final int defStyleAttr)
{
    super(context, attrs, defStyleAttr);
}

通过XML构建CustomButton工作正常。但是,在Java中构造时,它不会反映customStyle属性。尝试调试代码。虽然它通过第二个构造函数不占用属性。

任何线索都会受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

通过以编程方式创建CustomButton,我可以通过创建ContextThemeWrapper对象来解决这个问题。

在活动档案中:

CustomButton customButton = new CustomButton(new ContextThemeWrapper(this,R.style.customStyle));