在 Android 中扩展 LinearLayout 时如何将附加参数传递给构造函数?

How to pass additional arguments to a Constructor when extending a LinearLayout in Android?

我有以下问题,如果我有 class 扩展 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);

}

我不确定这是否可行,如果不可行,那该怎么做?

非常感谢和干杯,pingu

共享的这个构造函数应该完全按照您的预期工作。

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 发送自定义值,您实际上并没有调用构造函数,那么您应该看看这个答案: