如何将一个片段的引用传递给另一个片段
How to pass reference of one fragment to another fragment
我想从我为其创建接口并在片段中实现的另一个片段调用片段中的方法现在我想将我实现方法的片段的引用传递给它旁边的另一个片段,我该怎么做,我可以使用构造函数但片段使用新的实例方法和包。
谢谢
更新
我可以通过创建片段实例来调用方法,但是就内存而言最好的方法是什么
- 创建界面。通过 activity
实现
- 在发送方片段的构造函数参数中,从 activity 接收创建接口的实例。
- 将布尔标志作为接口的方法参数传递
- 由于 activity 保持发送方和接收方片段的链接,一旦 activity 获得回调 activity 触发接收方片段所需的方法。
在网络上找到一些 material,例如 "passing data between two fragments"。思路是一样的)
让你所有的片段都有一个回调到activity。制作界面如下
public interface Callback{
public void doSomething(params);
}
现在每当你初始化片段时,比如 FragmentClassA,在 FragmentClassA 中写一个函数 setCallback,如下所示,
private Callback callback;
public void setCallback(Callback callback){
this.callback=callback
}
在您的 activity 中,使用片段的引用来设置回调,如下所示,
fragmentAReference.setCallback(new Callback(){
public void doSomething(params){
//Now over here you can invoke fragmentB's reference to perform the job
}
});
所以基本上为了调用片段 A 到片段 B 的函数,片段 A 调用 activity 的回调,而 activity 使用片段 B 的引用来调用所需的函数
我想从我为其创建接口并在片段中实现的另一个片段调用片段中的方法现在我想将我实现方法的片段的引用传递给它旁边的另一个片段,我该怎么做,我可以使用构造函数但片段使用新的实例方法和包。
谢谢
更新 我可以通过创建片段实例来调用方法,但是就内存而言最好的方法是什么
- 创建界面。通过 activity 实现
- 在发送方片段的构造函数参数中,从 activity 接收创建接口的实例。
- 将布尔标志作为接口的方法参数传递
- 由于 activity 保持发送方和接收方片段的链接,一旦 activity 获得回调 activity 触发接收方片段所需的方法。
在网络上找到一些 material,例如 "passing data between two fragments"。思路是一样的)
让你所有的片段都有一个回调到activity。制作界面如下
public interface Callback{
public void doSomething(params);
}
现在每当你初始化片段时,比如 FragmentClassA,在 FragmentClassA 中写一个函数 setCallback,如下所示,
private Callback callback;
public void setCallback(Callback callback){
this.callback=callback
}
在您的 activity 中,使用片段的引用来设置回调,如下所示,
fragmentAReference.setCallback(new Callback(){
public void doSomething(params){
//Now over here you can invoke fragmentB's reference to perform the job
}
});
所以基本上为了调用片段 A 到片段 B 的函数,片段 A 调用 activity 的回调,而 activity 使用片段 B 的引用来调用所需的函数