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

时间:2015-06-03 11:44:43

标签: android class constructor android-linearlayout extend

如果我有一个扩展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

1 个答案:

答案 0 :(得分:5)

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

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