我有一个 Activity
和六个不同的 Fragments
附加到它。每个 fragment 都有 OnFragmentInteractionListener
接口(interface), Activity 实现所有这些监听器以接收回调。它看起来有点乱,所以我很感兴趣是否有一些模式/方法可以简化它并使其更优雅?
最佳答案
一个好的解决方案是对所有 fragment 使用相同的 OnFragmentInteractionListener,并使用每个监听器方法的一个参数(如 TAG 参数)来识别哪个 fragment 发送了操作。
举个例子:
创建一个新类,每个 fragment 都使用这个类
OnFragmentInteractionListener.java
public interface OnFragmentInteractionListener {
public void onFragmentMessage(String TAG, Object data);
}
在您的 Activity 中:
public void onFragmentMessage(String TAG, Object data){
if (TAG.equals("TAGFragment1")){
//Do something with 'data' that comes from fragment1
}
else if (TAG.equals("TAGFragment2")){
//Do something with 'data' that comes from fragment2
}
...
}
您可以使用 Object 类型来传递您想要的每种类型的数据(然后,在每个 if 中,您必须将 Object 转换为所需的类型)。
使用这种方式,维护起来比有 6 个不同的监听器和一种方法要传递的每种类型的数据更容易。
希望这对您有所帮助。
关于java - 如何正确处理一个Activity中的多个 fragment 交互监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30762861/