我刚刚为被 findViewById 困惑的人写了一个答案,我意识到我的理解存在差距。这个问题仅用于知识和好奇心。
考虑一下:
button = (Button)findViewById(R.id.button);
findViewById
返回 的实例View
,然后将其强制转换为目标类。到目前为止一切都很好。
要设置视图,请从关联的 XML 声明中的参数findViewById
构造一个AttributeSet
,并将其传递给View
.
然后我们将View
实例转换为Button
.
get如何AttributeSet
依次传递给Button
构造函数?
[编辑]
所以我很困惑:)。重点是当布局膨胀时,视图层次结构已经包含视图后代类的实例。findViewById 只是返回对它的引用。当你想到它时很明显 - doh..