2016-10-10 92 views
-1

我是Android編程新手。我想知道,在這個代碼什麼是this「this」在TextView中的作用textView = new TextView(this);

TextView textView = new TextView(this); 

這將指向一個類或方法?我從here複製了這段代碼。

+0

https://developer.android.com/reference/android/support/v7/app/AppCompatActivity.html/這指的是上下文並檢查TextView的構造函數@ https://developer.android.com/reference/ android/widget/TextView.html – Raghunandan

+1

[在Java中使用這個關鍵字](https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html) –

回答

2

的原因,你創建一個TextView是因爲TextView的構造函數(你調用的)中的一種採用Context對象作爲參數時,需要this

這基本上意味着你必須給TextView a Context才能創建它。

你從哪裏獲得此背景?那麼,一項活動就是一種背景(ActivityContext的一個子類)!你正在創建一個活動課TextView嗎?所以只要使用這個活動作爲上下文!

Got it?使用這個活動作爲TextView的上下文!這就是爲什麼你把this在那裏。 this引用代碼當前正在運行的對象。

由於this引用了從該類創建的對象,因此靜態方法中不能使用this,因爲靜態方法中的代碼不能在任何對象上運行。

this另一個用途是在構造函數:

class MyClass { 
    private int a, b; 

    public MyClass(int a, int b) { 
     this.a = a; 
     this.b = b; 
    } 
} 

由於編譯器無法知道哪個ab你的意思是,你必須添加this指的a這是在課堂上。