2013-01-15 21 views
-1

我找到了this。所以,遠沒有運氣。我用他的代碼,但我無法通過這個錯誤..我不熟悉充氣器。那麼有人可以解釋這段代碼嗎?創建透明傳遞活動

final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
      WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, 
      WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, 
      PixelFormat.TRANSLUCENT); 

    WindowManager wm = (WindowManager) getApplicationContext() 
      .getSystemService(Context.WINDOW_SERVICE); 
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    ViewGroup mTopView = (ViewGroup) getApplicationContext() 
      .getLayoutInflater().inflate(R.layout.activity_invisible, null); 
    getWindow().setAttributes(params); 
    wm.addView(mTopView, params); 

的這部分代碼:

ViewGroup mTopView = (ViewGroup) getApplicationContext() 
      .getLayoutInflater().inflate(R.layout.activity_invisible, null); 

給了我這個錯誤The method getLayoutInflater() is undefined for the type Context

有人能解釋我做錯了嗎?

+0

你在哪裏嘗試執行此代碼? –

+0

'onCreate()'方法本身。 –

+0

可能是因爲上下文中沒有getLayoutInflater()方法。嘗試使用您的活動,例如。或者像上面那樣,getSystemService – njzk2

回答

1

getLayoutInflater()Activity中的方法,而不是Context

您必須使用一個Activity的實例來調用它,否則它將無法工作。

但是,您可以使用在錯誤之前的行上創建的LayoutInflater inflater。喜歡的東西:

ViewGroup mTopView = (ViewGroup) inflater.inflate(R.layout.activity_invisible, null); 
+0

事情是我在我的問題中發佈的鏈接使用應用程序上下文。或者,我想。你能檢查一下嗎?因爲他的代碼是'ViewGroup mTopView =(ViewGroup)App.inflater.inflate(R.layout.main,null);' 'App'究竟是什麼? –

+0

應用程序可能是他的應用程序類的名稱。 'inflater'很可能是他在Application類的onCreate()中初始化的靜態LayoutInflater對象。 –

0

如果你想,而不是

ViewGroup mTopView = (ViewGroup) getApplicationContext().getLayoutInflater().inflate(R.layout.activity_invisible, null); 

執行內部onCreate()這個代碼,儘量

ViewGroup mTopView = (ViewGroup) getLayoutInflater().inflate(R.layout.activity_invisible, null); 

您的活動有getLayoutInflater()方法,所以沒有必要明確獲取上下文。