我遇到了一个问题,就是
在活动中,我调用
另外,我有一个使用
-P
findViewById()
返回了空值,好像很多人也遇到了同样的问题。我知道findViewById()
只能在onFinishInflate()
中View被膨胀后才能调用。我的问题是——什么是视图膨胀?在活动中,我调用
setContentView(R.layout.testview)
应该会调用View构造函数并调用onDraw()
。那不就膨胀视图了吗?如果是这样,为什么还需要LayoutInflater
和实际膨胀视图的功能呢?事实上,在我的代码中,onInflateView()
从未被调用,尽管整个视图都被渲染出来,我也能够与程序交互。这告诉我,视图膨胀与调用View的构造函数和onDraw()
函数有些不同。请问有人能解释一下吗?另外,我有一个使用
onDraw()
函数绘制的自定义视图。不知为何,onFinishInflate()
函数从未被调用。这可能是什么原因呢?-P
onFinishInflate()
,并且它一直很好用,尽管我现在没有任何样例。请确保您有@Override
注释,以防您在方法签名中犯了错误。 - CommonsWarePreferenceActivity
只是一个带有许多不同行的ListActivity
。你可以在这里看到手动调用LayoutInflater
的示例:https://github.com/commonsguy/cw-android/tree/master/FancyLists/DynamicEx。然而,这只是一个简单的书本例子,所以它没有展示多个不同的行。 - CommonsWare