android自定义控件之extends某控件时,不同构造方法的调用情况分析。

原创 2015年07月09日 21:49:02
	public CountDownButton(Context context) { // 方法一
		super(context);
		Log.e("CountDownButton", "CountDownButton(Context context)");
	}

	public CountDownButton(Context context, AttributeSet attrs) { // 方法二
		super(context, attrs);
		Log.e("CountDownButton", "CountDownButton(Context context, AttributeSet attrs)");
	}
	
	public CountDownButton(Context context, AttributeSet attrs, int defStyle) { // 方法三
		super(context, attrs, defStyle);
		Log.e("CountDownButton", "CountDownButton(Context context, AttributeSet attrs, int defStyle)");
		init();
	}


当我们在代码中调用的时候CountDownButton btn = new CountDownButton(this);

调用的时“方法一”。


当我们如下在布局的xml中,使用的时候,但是并没有调用自定义属性,此时调用的时“方法二”。

<com.test.CountDownButton
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="发送验证码"
        android:textSize="14sp" />



当我们如下在布局的xml中,使用的时候且调用自定义属性,此时调用的时“方法三”。

<com.test.CountDownButton
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="发送验证码"
<span style="white-space:pre">	</span>app:direction="left"
        android:textSize="14sp" />


(1)实际的情况中,我们一般采取方法一调用方法二,方法二调用方法三。因为实际中很多时候都自定义了属性,并且希望不管使用那种方式,

都需要去取得一些默认的属性值并设置给控件。

(2)如果想不是用自定义属性,第三个方法可以不写,这样子就控件默认使用控件自带的属性了。

相关文章推荐

Android 自定义控件构造方法分析

构造方法分析Android自定义控件是每个开发者的必经之路,在自定义控件最开始,就是重写构造方法,一般常用的有三个构造方法,分别是一个,两个,三个参数的。public MyView(Context c...
  • QQ55214
  • QQ55214
  • 2017年05月08日 17:05
  • 564

android自定义控件,其三个父类构造方法有什么区别

android自定义控件时,通常需要重写父类构造函数。这三个够找函数具体啥时调用? public View (Context context) 是在java代码创建视图的时候被调用,如果是从xm...

自定义控件的构造方法及相关属性的理解

自定义控件的构造方法 继承View的控件有四个构造方法: 1、View(Context context)2、View(Context context, @Nullable AttributeS...

自定义控件学习前篇 简单认识View的四个构造方法

自定义View绘制流程函数调用链(简化版)一、自定义View的分类:1.自定义ViewGroup自定义ViewGroup一般是利用现有的组件根据特定的布局方式来组成新的组件,大多继承自ViewGrou...

1.首先描述下自定义控件的一般方法: 自定义控件是被创造出来,所以先要复写它三个的构造方法,根据需求决定复写哪个,若没有自定义属性,复写只有一个参数的即可。若有自定义属性,则可以通过obtainSty

1.首先描述下自定义控件的一般方法: 自定义控件是被创造出来,所以先要复写它三个的构造方法,根据需求决定复写哪个,若没有自定义属性,复写只有一个参数的即可。若有自定义属性,则可以通过obtain...

Android中的主题和样式及自定义控件构造参数

AttributeSet可以看到android 给自定义View提供了好几个构造函数。相对应的也有好几个obtainStyledAttributes重载方法 obtainStyledAttribute...
  • wbwjx
  • wbwjx
  • 2016年01月26日 23:06
  • 1337

Android自定义控件三个构造函数

自定义控件时,最好抽象得彻底,并且编写需严谨,因为可能程序中多处都会引用到它,或者提供给团队中的其他人使用。   其一般步骤为: 1.创建控件的类文件,定义其功能逻辑。一般继承自现有控件或者Vi...

android studio和eclipse中自定义组合控件的不同写法

带自定义属性的组合控件在AS和eclipse中的写法发生了一些变化,先上代码再解释 主要体现在两个方面:自定义属性的获取和命名空间的声明。具体看代码 AS中的写法 1、布局文件,view_m...

WinForm-控件、窗体的构造方法和加载方法的比较

控件、窗体的构造方法和加载方法的比较    因为窗体Form也是从Control类继承而来,所以实质上窗体也是一种控件。为了方便叙述,下面都只提到窗体,但是下面讲的内容对窗体和控件都适用。    窗体...

Android 自定义控件源码分析----谈Android自定义控件中 onMeasure()方法处理 wrap_content 情况的必要性

这是一篇与 Android 自定义控件相关的源码分析的文章. 主要从源码的角度分析自定义控件时, onMeasure() 方法处理其宽或高在布局文件中被设置为 wrap_content 时的必要性....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android自定义控件之extends某控件时,不同构造方法的调用情况分析。
举报原因:
原因补充:

(最多只允许输入30个字)