2014-10-30 39 views
0

我正在研究Google提供的用於學習如何製作Android應用的教程,並且我不明白爲什麼他們在創建TextView實例時將此作爲參數傳遞。這裏是代碼使用「this」作爲構造函數的參數

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); 
+0

你需要告訴你的textView,它與你的視圖相關聯(this) – yunandtidus 2014-10-30 18:08:53

回答

2

您應該首先閱讀Java文檔,因爲大部分Android開發需要對語言基礎知識的深入理解。 This link解釋了使用this

thisonCreate所屬的類的當前實例的參考。在這種情況下,它指的是Activity實例。

TextView構造函數以Context對象爲參數,而Activity類自身延伸Context

這樣方法onCreate創建一個TextView屬於這個活動。

+0

謝謝你正是我一直在尋找 – TheSquigglyLine 2014-10-30 18:38:55

0

正如你可以從here看到的構造函數需要一個Context類型的變量。 TextView需要這樣才能理解程序當前正在進行的操作。

0

「this」是當前對象的引用,因此看看持有該方法的類。

0

TextView類有許多構造函數,其中一個接受類型爲Context的參數。

this關鍵字指向當前對象,所以該對象是一種類型的上下文。

0

TextView的文檔顯示,當您要調用1參數的構造函數時,您必須傳遞對Context對象的引用。見here

你在做什麼,通過使用this正在傳遞一個對類的當前實例的引用給構造函數。在你的代碼的情況下,你會從Activity這個Context類的孩子中調用它。見here