findViewByIdによって混乱した人のために答えを書いたばかりで、私の理解にギャップがあることに気付きました。この質問は、知識と好奇心のためのものです。findViewByIdはビューをどのように初期化するのですか?
この考えてみましょう:
button = (Button)findViewById(R.id.button);
findViewById
は、ターゲットクラスにキャストされ、View
のインスタンスを返します。これまでのすべての良い。
ビューを設定するために、findViewById
は、コンストラクタに渡す関連するXML宣言のパラメータからを構成してView
にします。
次に、View
インスタンスをButton
にキャストします。
AttributeSet
は、Button
コンストラクタに順番に渡されますか?
[EDIT]
だから私は混乱して1 :)でした。全体のポイントは、レイアウトが膨張すると、ビュー階層にはすでにビューの子孫クラスのインスタンスが含まれていることです。 findViewByIdは単に参照を返します。あなたがそれについて考えるときは明らかです -
+ 5クエストオンのための質問です。あなたの質問のために私は調査して、basiに関する完全な情報を見つけましたcフロー.... @レオニードスのおかげで – Pragnani