2015-05-17 117 views
0

我想知道下面兩個Toast中兩個上下文之間的區別,何時使用這個&何時使用getActicity?Android吐司上下文

Toast.makeText(getActivity() , "Text" ,Toast.LENGTH_LONG).show(); 

    Toast.makeText(this , "Text" ,Toast.LENGTH_LONG).show(); 
+3

的可能的複製http://stackoverflow.com/questions/10347184/difference-and-when-to-use- getapplication-getapplicationcontext-getbasecon –

+2

'getActivity()'用於當你離開上下文時(即:在一個片段中),其中'this'不起作用。 –

回答

1

如果你說正試圖從一個Fragment訪問它,使用getActivity()否則,如果你是在Activity本身,使用this

1

您可以用活動指定您的ContextthisgetApplicationContext()

getActivity() 

使用了Android的碎片

1

this實際上是指當前類,你是在一個指針。this可以參照類似的東西ActivityFragmentView,的etc.A參考使用當前對象this

getActivity()僅在Fragment類和其他任何擴展Fragment類中可用,並且此方法返回類型爲Activity的對象。

1

要創建Toast您需要一個Context對象。

如果你是在一個Activity類或擴展Context類,你可以使用this(因爲Activity本身就是一個Context孩子)

如果您例如在Fragment類另一個類,那並不是」 t延伸Context,您應該使用getActivity()獲得Context參考。

這裏關於Context類的文檔,你找到的所有類,擴展它:http://developer.android.com/reference/android/content/Context.html