Reputation: 12206
I'm trying to extend the android button class and have it use an xml layout file.
The reason I want to use an xml layout file is that my button needs to use a style and as far as I know, there isn't a way to set style programatically.
public class BuyButton extends Button { ... }
<?xml version="1.0" encoding="utf-8"?>
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/customButton"
/>
so that I can call:
new BuyButton(activity);
and have it create a button that has the style applied to it.
(I'm also open to other ways of getting the same result)
Upvotes: 9
Views: 20598
Reputation: 11
In your layout .xml a one line change to the control type (change from Button to your custom button type ) will solve your casting problem.
For your subclassed BuyButton, find the button's section in .xml; it may look something like this:
<Button
android:id="@+id/btnBuy"
android:layout_width="188dp"
android:layout_height="70dp"
android:padding="12dp"
android:text="Buy" />
and change it to this :
<yourpackage.name.BuyButton
android:id="@+id/btnBuy"
android:layout_width="188dp"
android:layout_height="70dp"
android:padding="12dp"
android:text="Buy" />
Upvotes: 1
Reputation: 30804
Create a class that extends Button
.
public class BuyButton extends Button {
public BuyButton(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
}
In your XML reference that custom class directly.
<?xml version="1.0" encoding="utf-8"?>
<your.package.name.BuyButton
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/customButton"/>
Upvotes: 15
Reputation: 91
See the Button Style section. Just set a custom background drawable.
Upvotes: -1