我有一个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
。