我有以下问题,如果我有一个类扩展LinearLayout:
public class ExtendedSeekbarLayout extends LinearLayout { ..}
和我想传递额外的参数到我的布局,我怎么做到这一点?我知道我可以有以下构造函数:
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);
}
但是我想要这样的:
public ExtendedSeekbarLayout (Context context, AttributeSet attributeSet, int defStyle, int position) {
super(context, attributeSet, defStyle);
init(position);
}
我不确定这是否可能,如果不可能,那么该走哪条路呢?
谢谢大家,谢谢大家。
您共享的构造函数应该完全按照您的期望工作。
public ExtendedSeekbarLayout (Context context, AttributeSet attributeSet, int defStyle, int position) {
super(context, attributeSet, defStyle);
init(position);
}
你不一定需要这个构造函数,只要你调用
super(context);
您可以在编程实例化视图的情况下这样做:
public ExtendedSeekbarLayout (Context context, int position) {
super(context);
init(position);
}
但是如果你正在谈论从xml发送一个自定义值,你实际上不调用构造函数,那么你应该看看这个答案:https://stackoverflow.com/a/7608739/2534007