Android 我最早可以在视图子类中使用findViewById的时间是什么时候?
我有自己编写的自定义视图,它将一系列按钮连接到预定义的方法。这些按钮是我正在创建的视图的子项 我的问题是,我可以使用什么最早的方法来覆盖一系列的Android 我最早可以在视图子类中使用findViewById的时间是什么时候?,android,layout,Android,Layout,我有自己编写的自定义视图,它将一系列按钮连接到预定义的方法。这些按钮是我正在创建的视图的子项 我的问题是,我可以使用什么最早的方法来覆盖一系列的findViewById?我相信我不能在构造函数中使用它,因为对findviewbyd的任何调用都将返回null 谢谢 布拉德 通过findviewbyd访问子级的最早时间是在展开布局之后 inflator.inflate(R.layout.main, this); Button b = (Button)findViewById(R.id.button0
findViewById
?我相信我不能在构造函数中使用它,因为对findviewbyd
的任何调用都将返回null
谢谢
布拉德 通过
findviewbyd
访问子级的最早时间是在展开布局之后
inflator.inflate(R.layout.main, this);
Button b = (Button)findViewById(R.id.button01);
如果您想在侧边查找dviewbyd,您的自定义视图可能是一个很好的位置,这可能对设置任何侦听器都很有用,但如果您只想在其他重写方法中使用,我通常会执行以下操作:
View mView;
View getView(){
if(mView==null){
mView=findViewById(...);
}
return mView;
}
如果您的类是
ViewGroup
的子类,则可以覆盖onfinishflate
并在此方法中使用findViewById
:
public void onFinishInflate() {
super.onFinishInflate();
TextView view = (TextView) findViewById(R.id.view_id);
...
}
如果视图层次结构不复杂,也许可以循环遍历子对象并在构造函数中比较id,尽管我还没有尝试过。