一連のボタンを事前定義されたメソッドに接続するカスタムビューを作成しました。これらのボタンは、私が作成しているビューの子です。
私の質問は、一連のを使用するためにオーバーライドするために使用できる最も初期の方法は何findViewById
ですか?を呼び出すとfindViewById
が返されるため、コンストラクターでは使用できないと思いますnull
。
ありがとう、
ブラッド。
クラスがのサブクラスである場合、このメソッド内でオーバーライドして使用ViewGroup
できます。onFinishInflate
findViewById
public void onFinishInflate() {
super.onFinishInflate();
TextView view = (TextView) findViewById(R.id.view_id);
...
}
子にアクセスできる最も早い時期findViewById
は、レイアウトを膨らませた直後です。
inflator.inflate(R.layout.main, this);
Button b = (Button)findViewById(R.id.button01);
カスタムビューonAttachedToWindowの横でViewByIdを見つけたい場合は、リスナーを設定するのに便利ですが、他のオーバーライドメソッドでのみ必要な場合は、ほとんどの場合、次のようになります。
View mView;
View getView(){
if(mView==null){
mView=findViewById(...);
}
return mView;
}