我有自定义View我已经编写过将一系列按钮连接到预定义方法。这些按钮是我正在创建的View的子项。
我的问题是,我可以使用什么最早的方法来覆盖使用一系列findViewById
的?我相信我无法在构造函数中使用它,因为对findViewById
的任何调用都将返回null
。
谢谢,
布拉德。
答案 0 :(得分:5)
如果您的课程是ViewGroup
的子课程,则可以覆盖onFinishInflate
并在此方法中使用findViewById
:
public void onFinishInflate() {
super.onFinishInflate();
TextView view = (TextView) findViewById(R.id.view_id);
...
}
答案 1 :(得分:2)
最早,您可以通过findViewById
访问儿童,这是在给布局充气后立即进行的。
inflator.inflate(R.layout.main, this);
Button b = (Button)findViewById(R.id.button01);
答案 2 :(得分:0)
如果你想在旁边找到ViewById你的自定义视图onAttachedToWindow可能是一个好地方,这可能对设置任何监听器很有用,但如果你只想要其他覆盖方法,我大多会像下面这样:
View mView;
View getView(){
if(mView==null){
mView=findViewById(...);
}
return mView;
}