請教android程式設計的基本問題

design8 wrote:
你的意思是
onCreate(}下可以用this
如果不是的話就必須用xxx.this的意思嗎?


this這個關鍵字的用法是Java語法的部分,就我的理解,this會指向當前這個class的實例

EX:

public class Class1 extends Activity
{....}
只要在大括號裡面,this都是指Class1的一個instance,Class1因為繼承了Activity
又因為Activity是Context的subclass,所以Class1也是Context的subclass

============================================
但是如果是inner class(一般實作listener是匿名inner class)

public class Class1 extends Activity
{
class Class2{....this }
//在class2裡的this當然就是指向Class2的一個instance,所以當你的Toast寫在class2裡
//就不能用this,因為this指向Class2,而Class2並不是一個context的subclass
//此時就要用Class1.this,才能指向Class1的instance
}

kourinoa wrote:
this這個關鍵字的...(恕刪)

謝謝說明
再請教
class Class2{....this }
也就是subclass裡面無 context嗎?
所以才要用xxx.this嗎?

design8 wrote:
謝謝說明
再請教
c...(恕刪)


關於subclass這個字的意思:
如果A Class繼承B Class,那A就是B的subclass,好像是翻譯成『子類別』
如此一來,A就是一個B(A is a B),當argument需要一個B時,你也可以傳入一個A給他。

Activity繼承了Context,所以Activity一個Context
Class2沒有繼承Activity,所以Class2不是一個Context,在Class2裡的this就不是一個Context
Toast需要一個Context,自然你就不能將Class2裡的this傳給它

kourinoa wrote:
關於subclass...(恕刪)

謝謝說明
這樣清楚多了
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!