Android:以编程方式创建自定义组件不反映应用的样式
问题描述:
创建一个自定义按钮,它扩展了AppCompatButton。以下是使用的构造函数:Android:以编程方式创建自定义组件不反映应用的样式
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属性。试图调试代码。虽然它通过第二个构造函数不会占用属性。
任何线索将不胜感激。
答
我能够通过以编程方式创建CustomButton时创建ContextThemeWrapper对象来解决此问题。
在活动文件:
的CustomButton的CustomButton =新的CustomButton(新ContextThemeWrapper(此,R.style.customStyle));