如何将一个片段的引用传递到另一个片段

时间:2018-07-21 15:10:57

标签: java android android-fragments fragmenttransaction fragmentmanager

我想从另一个我为之创建接口并在片段中实现的片段中调用片段中的方法,现在我想将我实现了方法的片段的引用传递给它旁边的另一个片段,我该怎么做,我可以使用了构造函数,但是片段使用了新的实例方法和包。

谢谢

更新 我可以通过创建片段实例来调用方法,但是就内存而言,最好的方法是什么

2 个答案:

答案 0 :(得分:0)

  1. 创建界面。通过活动实施
  2. 在发送方片段的构造函数中,parametr从活动中接收创建的接口的实例。
  3. 传递布尔值标志作为接口的方法参数
  4. 由于活动使发送者和接收者片段都保持链接,并且一旦活动获得回调,活动就会触发接收者片段所需的方法。

在网络中查找一些材料,例如“在两个片段之间传递数据”。想法是一样的)

答案 1 :(得分:0)

让您所有的片段都具有对该活动的回调。制作如下界面

public interface Callback{
public void doSomething(params);
}

现在,每当初始化片段(例如FragmentClassA)时,在FragmentClassA中编写如下的函数setCallback,

private Callback callback;
public void setCallback(Callback callback){
this.callback=callback
}

在您的活动中,使用片段的引用对setCallback进行如下操作,

fragmentAReference.setCallback(new Callback(){

    public void doSomething(params){
    //Now over here you can invoke fragmentB's reference to perform the job
    }
    });

因此,基本上为了从片段A到片段B调用功能,片段A会调用活动的回调,而活动会使用fragmentB的引用来调用所需的功能