前言

在一个嵌套布局中获取父类的控件,通过子类中的触发事件或方法,来调用或修改父类控件的状态。

应用场景示例:在Activity中嵌入多个fragment页面,在切换不同的fragment时候,变换父类Activity中的标题栏TextView中的文字标题内容。那么可以在每个fragment中取到父类Activity中的TextView控件实例,然后对其重新赋值。

一.如果父类容器是Activity

 TextView txt_title =(TextView)getActivity().findViewById(R.id.txt_title);
 txt_title.setText("标题一");

在子类布局中调用父类的控件,可运用getActivity()取到以Activity为父类容器的上下文,然后通过findViewById()取到父类的控件,就可以在子类布局中获取到实例,进而修改其属性值。

二.如果父类容器是Fragment

TextView txt_title =(TextView)getParentFragment().getView().findViewById(R.id.txt_title);
txt_title.setText("标题二");

同理,运用getParentFragment().getView()可以取到以Fragment为父类容器的上下文,然后通过findViewById()取到父类的控件,就可以在子类布局中获取到实例,进而修改其属性值。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐