2012-09-03 79 views
0

我是新來android和java。處理應用程序上下文

我正在重新安排我的應用程序中的一些類到單獨的類文件中。我的主要活動類文件中有一個onLocationListener類。我把這個類移到了一個單獨的java類文件中。然後,但是下面的代碼不會編譯。 。 。

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

當此代碼位於單獨的文件中時,getApplicationContext不會編譯。我試過這個。mainactivityname。但似乎沒有任何工作。所以我認爲這個問題可以形成以下問題:

如何從主活動文件之外的獨立java類文件中存在的代碼聲明應用程序上下文? 感謝,加里

回答

2

getApplicationContext()Context類的方法,所以你只能從一個類調用或物體以某種方式延長Context。你將代碼分解爲Activity,這是一個這樣的類。那麼你的解決方案就是用於包含你的新類或對象的Context類,以便你的新類可以使用它。

你的主活動中的代碼會是這個樣子:

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

這可能是一個好主意,讓應用程序上下文馬上,因爲它會爲你的應用程序的生命週期穩定,不像活動的上下文可以消除一些簡單的方向變化。

相關問題