-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()Activity中的方法,而不是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 回答