我是Android开发的初学者。 this
关键字在任何构造函数中使用时总是让我感到困惑。有人可以向我解释这是什么意思吗?
RelativeLayout ob = new RelativeLayout(this);
Button btn = new Button(this);
this
在之前的构造函数中意味着什么?它指的是什么?
答案 0 :(得分:1)
如文档here所示,RelativeLayout
构造函数接受Context
的实例。我假设您在一个活动中调用该代码,可能在onStart
方法中。如果是这种情况,this
关键字将引用活动的当前实例。在android中,Activities扩展了ContextWrapper
类,使它们成为Context类的子类,因此可以传递给RelativeLayout
和Button
构造函数。
this
关键字指的是包含您正在调用的构造函数的方法的类的当前实例。
答案 1 :(得分:0)
this
指的是这个代码所在的类的实例,例如:
public class Foo {
private string bar = "bar";
public Foo(string bar)
{
this.bar // <-- refers to global bar. Not the bar from constructor.
}
}
在您的情况下,this
需要RelativeLayout
所需的参数类型,因此您的类可能必须按RelativeLayout
所需的内容进行扩展。