使用“this”作为构造函数的参数

时间:2014-10-30 18:05:58

标签: android constructor this

我正在完成Google提供的教程,学习如何制作Android应用,我不明白为什么在创建TextView时会将其作为参数传递。这是代码

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_message);
    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
    TextView textView = new TextView(this); //The line in question, why do they use "new TextView(this)
    textView.setTextSize(40);
    textView.setText(message);
    setContentView(textView);

5 个答案:

答案 0 :(得分:2)

您应首先阅读Java文档,因为Android开发的大部分内容需要对语言基础知识有深刻的理解。 This link解释了this的使用情况。

this是对onCreate所属的类的当前实例的引用。在这种情况下,它引用Activity实例。

TextView构造函数将Context对象作为参数,Activity类本身扩展Context

这种方法onCreate创建属于活动的TextView

答案 1 :(得分:0)

here可以看出,构造函数需要一个Context类型的变量。 TextView需要这个,所以它可以理解程序当前正在发生什么。

答案 2 :(得分:0)

“This”是当前对象的引用,因此查看保存该方法的类。

答案 3 :(得分:0)

TextView类有许多构造函数,其中一个接受Context类型的参数。

this关键字引用当前对象,因此该对象是一种Context。

答案 4 :(得分:0)

TextView的文档显示,当您要调用1参数构造函数时,必须传递对Context对象的引用。请参阅here

使用this执行的操作是将对类的当前实例的引用传递给构造函数。对于您的代码,您将从Activity调用它,该Context是{{1}}类的子级。见here