2012-07-19 70 views
0

我試圖使大部分實用函數抽象化,所以我決定將它們分成一個名爲Utils.java的新類(在Android應用程序包內部)。然而,我很難將活動上下文傳遞給這個輔助類,並在其輔助類的方法中運行一些系統的東西。通過傳遞活動上下文在外部類中的requestWindowFeature()

我有這種情況的主要活動的onCreate:

Utils u = new Utils(this); 
u.makeFullscreen(); 

Utils.java:

package mypackagenamehere; 

import android.content.Context; 
import android.view.Window; 
import android.view.WindowManager; 

public class Utils{ 
    Context context; 

    // Constructor 
    public Utils(Context c) { 
     context = c; 
    } 

    public void makeFullscreen(){ 
     context.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     context.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    } 

} 

的問題是與makeFullscreen()方法的內容。

+0

確保你已經叫'makeFullscreen'之前'setContentView',因爲它是必須要求。你在這個方法中調用'requestWindowFeature'。 – 2012-07-19 19:05:58

回答

0

試試這個

Utils u = new Utils(YourActivityName.this); 

,並更好地做到這樣

public stactic void makeFullscreen(Context context){ 
     context.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     context.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    } 

然後直接打電話

Utils.makeFullscreen(YourActivityName.this); 
+0

但事情是,我計劃在makeFullscreen旁邊加入其他方法。我需要能夠只設置Activity上下文一次,最好是在構造函數中,然後爲每個需要運行的方法調用Utils類的同一個實例,而無需將上下文傳遞給每個方法。 – 2012-07-19 18:09:01

+0

okey ...您是否嘗試過傳遞'YourActivityName.this' – MAC 2012-07-19 18:10:58

+0

是的,我仍然無法在Eclipse中運行應用程序,因爲此方法中有錯誤。 – 2012-07-19 18:47:38

相關問題