0

我是android和java的新手。

我正在将我的应用程序中的一些类重新排列到单独的类文件中。我的主要活动类文件中有一个 onLocationListener 类。我将该类移动到一个单独的 java 类文件中。然后,但是下面的代码将无法编译。. .

public void onProviderDisabled(String provider)
{
     Toast.makeText( getApplicationContext(),
     "Gps Disabled",
     Toast.LENGTH_SHORT ).show();
}

当此代码位于单独的文件中时,getApplicationContext 不会编译。我试过这个。主要活动名称。但似乎没有任何效果。所以我想这个问题可以形成以下问题:

您如何从存在于主活动文件之外的单独 java 类文件中的代码中声明应用程序上下文?谢谢,加里

4

1 回答 1

2

getApplicationContext()是类Context的一个方法,因此您只能从以某种方式扩展的类或对象调用它Context。您将代码从Activity中分解出来,这是一个类。那么,您的解决方案是Context让包含您的新类或对象的类传递其上下文,以便您的新类可以使用它。

您在主 Activity 中的代码如下所示:

MyOwnClass ownObject = new MyOwnClass();
// you have to implement setApplicationContext
ownObject.setApplicationContext( this.getApplicationContext() );

立即获取应用程序上下文可能是一个好主意,因为它会在您的应用程序的整个生命周期内保持稳定,这与 Activity 上下文不同,它可以在诸如方向更改之类的简单事情上消失。

于 2012-09-03T19:44:35.370 回答