当前位置: 代码迷 >> Android >> TextView tv = new TextView(this) 为何传参是this
  详细解决方案

TextView tv = new TextView(this) 为何传参是this

热度:320   发布时间:2016-04-28 07:22:14.0
TextView tv = new TextView(this) 为什么传参是this?
在java中是一个特殊引用,主要用法有三个:①指代对象本身,及语法格式就是 this  ②访问本类成员变量和成员方法  ③掉用本类的重载构造方法   请问这里的this是哪一种用法?
this??引用

------解决方案--------------------
看下Activity的类继承结构知道Activity是Context类的子类。
new TextView(Context context) ,构造函数需要传递一个Context的对象,所以在Activity中用this代表Activity实例,以子类传递替代父类是正确的。 当然你也传参进去任何一个Context类的子类,例如Application
------解决方案--------------------
这里的this指第一种:①指代对象本身,及语法格式就是 this
因为Activity是间接继承自Context类,new TextView(Context context),需要一个Context类型对象。
而子类Activity转父类Context表示毫无压力。
  相关解决方案