-1

私はこれを見つけまし。だから、運が悪い。私は彼のコードを使用しましたが、このエラーを乗り越えることができません..私はインフレータに慣れていません. 誰かがこのコードを説明できますか?

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

誰かが私が間違っていることを説明できますか?

4

2 に答える 2

1

getLayoutInflater()はContextではなくActivityのメソッドです。

アクティビティを呼び出すには、アクティビティのインスタンスを使用する必要があります。そうしないと、動作しません。

inflaterただし、エラーのある行の前に作成した LayoutInflater を使用できる可能性があります。何かのようなもの:

ViewGroup mTopView = (ViewGroup) inflater.inflate(R.layout.activity_invisible, null);
于 2013-01-15T16:43:00.560 に答える
0

このコードを内部onCreate()で実行しようとしている場合は、

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

試す

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

アクティビティにはgetLayoutInflater()メソッドがあるため、コンテキストを明示的に取得する必要はありません。

于 2013-01-15T16:47:05.237 に答える