I have created a Custom Class called RoundedButton that extends Button. I want to assign some default parameters. How to go about it?
There was no change after I implemented the xml codes below. Basically the style was not getting added by default. I don't know what I am missing.
in styles.xml
<resources>
<style name="AppTheme" parent="@android:style/Theme.Light">
<item name="RoundedButtonStyle">@style/CustomView</item>
</style>
<style name="CustomView">
<item name="android:clickable">true</item>
<item name="android:focusable">true</item>
<item name="android:focusableInTouchMode">true</item>
<item name="android:colorBackground">@color/transparent</item>
<item name="android:textColor">@color/blue</item>
<item name="android:windowBackground">@color/transparent</item>
<item name="android:background">@drawable/button_border</item>
<item name="android:gravity">center</item>
</style>
</resources>
in attrs.xml
<resources>
<attr name="RoundedButtonStyle" type="reference" />
</resources>
manifest:
android:theme="@style/AppTheme"
RoundButton.java
public RoundedButton(Context context) {
super(context);
ctx = context;
}
public RoundedButton(Context context, AttributeSet attrs) {
super(context, attrs, R.attr.RoundedButtonStyle);
ctx = context;
TypedArray attrsArray = context.obtainStyledAttributes(attrs, R.styleable.RoundedButtonAttrs, 0, 0);
initAttributesArray(attrsArray);
attrsArray.recycle();
initializeRoundedButton();
}
I have used this and this for trying to solve it.
EDIT: Earlier I had an issue that the background was light grey and did not change, I discovered the issue was because of a line of code that I had later in the UI Class.