I have the following question, if I have a class extending a LinearLayout like:
public class ExtendedSeekbarLayout extends LinearLayout { ..}
and I would like to pass additional Arguments to my Layout, how do I do this? I know that I could have the following constructors like:
public ExtendedSeekbarLayout (Context context) {
super(context);
}
public ExtendedSeekbarLayout (Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
public ExtendedSeekbarLayout (Context context, AttributeSet attributeSet, int defStyle) {
super(context, attributeSet, defStyle);
}
but I would like to have something like:
public ExtendedSeekbarLayout (Context context, AttributeSet attributeSet, int defStyle, int position) {
super(context, attributeSet, defStyle);
init(position);
}
I'm not sure if this is possible, if not, which would be the way to go then?
Thanks a lot and cheers, pingu
This constructor that you shared should work exactly as you expect.
public ExtendedSeekbarLayout (Context context, AttributeSet attributeSet, int defStyle, int position) {
super(context, attributeSet, defStyle);
init(position);
}
Btw you don't necessarily need to have this constructor, as long as you call
super(context);
You can do this in case of programmatically instantiating a view:
public ExtendedSeekbarLayout (Context context, int position) {
super(context);
init(position);
}
But if you are talking about sending a custom value from xml, where you don't actually call a constructor, then you should look at this answer: https://stackoverflow.com/a/7608739/2534007