自定义View的构造函数

参考:http://zhidao.baidu.com/link?url=ZnoSOhnyblr1EFWsymK1ngfeX8nXIQPqLeNantUF7O1meNeJhpiwujA-QsF6AT7PkaMFKCxjhxjc884Q3JwTJK


理解:
public View (Context context) :

java代码创建视图的时候被调用,如果是从xml填充的视图,就不会调用这个


public View (Context context, AttributeSet attrs) :

这个是在xml创建但是没有指定style的时候被调用


public View (Context context, AttributeSet attrs, int defStyle):

这在xml创建并且指定style的时候被调用

For further

View的第三个构造函数的第三个参数defStyle

  • 如果在Code中实例化一个View会调用第一个构造函数,
  • 如果在xml中定义会调用第二个构造函数,
  • 第三个函数系统是不调用的,要由View(我们自定义的或系统预定义的View)显式调用,比如在这里我们在第二个构造函数中调用了第三个构造函数,并将R.attr.CustomizeStyle传给了第三个参数。

第三个参数的意义就如同它的名字所说的,是默认的Style,只是这里没有说清楚,这里的默认的Style是指它在当前Application或Activity所用的Theme中的默认Style,以系统中的Button为例说明。

public Button(Context context) {
    this(context, null);
}


public Button(Context context, AttributeSet attrs) {
    this(context, attrs, com.android.internal.R.attr.buttonStyle);// 显示调用style
}


public Button(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值