2015-05-17 85 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