有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android视图不为null,但强制转换到ViewGroup会使其为null

我有一个活动添加了一个新视图onPostCreate(),如下所示:

View rootView = findViewById(安卓.R.id.content);
((ViewGroup)rootView).addView(myView);


当这段代码运行时,我得到一个NullPointerException。但是,如果我不强制转换它并检查输出:

View rootView = findViewById(安卓.R.id.content);
Log.v(TAG, "rootView is " + rootView);


我得到日志:

1340-1340/com.example.app V/MyActivity﹕ rootView is 安卓.widget.FrameLayout@414d1b48

为什么会发生这种情况

编辑:我忘了添加setContentView()是在前面的onCreate()中调用的,我确实在强制转换之前调用了super.onPostCreate()


共 (2) 个答案

  1. # 1 楼答案

    施法不是问题,否则会抛出ClassCastException。 似乎传递给addView(View view)方法的myView是空的,我看不到任何其他可能性。 确保已正确初始化myView

  2. # 2 楼答案

    确保以下行中的myView不为空:

    ((ViewGroup)rootView).addView(myView);