我有一个Activity,可以添加一个新视图onPostCreate(),如下所示:

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



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

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



我得到日志:

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


为什么会这样?

编辑:我忘了添加setContentView()在前面的onCreate()中被调用,并且在转换前我确实调用了super.onPostCreate()

最佳答案

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

10-05 22:49
查看更多