Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我最早可以在视图子类中使用findViewById的时间是什么时候?_Android_Layout - Fatal编程技术网

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,尽管我还没有尝试过。