假设我有两个片段A,B,C。片段A包含带有View Pager的片段B,C,允许使用选项卡布局在两个片段之间切换。片段B,C是通过使用来自片段A的数据创建的,因此我可以将侦听器从片段A传递到片段B和C,并在片段A的那些片段中接收事件。但是我想接收片段B,C中的事件在片段A上(单击A工具栏上的一个项目)。
如何将片段A的发送事件发送到片段B,C,就像从片段A传递给侦听器的方式一样,使片段B允许B将事件发送给A。如果无法使用侦听器,它将很高兴听到其他选择。
解决问题的方法非常简单。将当前片段存储在Viewpager适配器getItem()方法的变量中。
@NonNull
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
fragB=new FragB();
return fragB;
case 1:
fragC = new FragC();
return fragC;
}
}
现在,当您要将数据发送到片段B和片段C时,请使用此变量并将数据发送到该片段(片段中的Create方法来处理事件)。例如按钮单击的发送事件。
view1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
fragB.onClick();
fragC.onClick();
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句