3

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.

Community
  • 1
  • 1
suku
  • 10,507
  • 16
  • 75
  • 120

0 Answers0