提问者:小点点

Android:为什么“TextView”对象需要一个对activity的引用作为参数?


问题就在标题里

示例:

val textview = TextView(this)

共3个答案

匿名用户

视图(即TextView)需要对上下文的引用。 由于activity扩展了上下文类,因此开发人员通常使用this关键字来引用上下文并满足参数要求。

匿名用户

为什么“TextView”对象需要一个对activity的引用作为参数?

如果查看Android视图的源代码,构造函数将其存储在一个名为mcontext的变量中:

/**
 * The application environment this view lives in.
 * This field should be made private, so it is hidden from the SDK.
 * {@hide}
 */
protected Context mContext;

该变量对于维护其生命周期非常有用,并且在View类中的许多方法中都使用了该变量。 例如,initScrollCache,sendAccessibilityEventInternal,onScrollChanged和更多的方法都使用它们。

匿名用户

为什么“TextView”对象需要一个对activity的引用作为参数?

因为当您希望以编程方式创建TextView时,需要将Context作为参数传递

例如val textview=textview(this)

这里的this指的是您当前的activity。