我有一个活动和10个片段。我创建了一个接口,并在所有Fragments上实现了它。如何在活动的所有片段上调用该方法?

  public interface OnConnectListener {
      void isDeviceConnected(boolean b);
  }


更新:

根据您的建议,我这样做:

public void isDeviceConnected(boolean b, List fragmentList) {
    for (OnConnectListener listener : getOnConnectListeners(fragmentList)) {
        listener.isDeviceConnected(b);
    }
}

public List<OnConnectListener> getOnConnectListeners(List fragmentList) {
    List<OnConnectListener> listeners = new ArrayList<>();
    for (Object o : fragmentList) {
        if (o instanceof OnConnectListener) {
            listeners.add((OnConnectListener) o);
        }
    }
    return listeners;
}


现在我只用:

isDeviceConnected(true, fragmentList);


非常感谢。

最佳答案

假设您的“ Activity”类拥有10个“ onConnectListener”实例的引用,则可以遍历每个实例并像下面这样调用isDeviceConnected:

private List<onConnectListener> onConnectListeners;
....
for(onConnectListener onConnectListener: onConnectListeners) {
    onConnectListener.isDeviceConnected(true); // or false
}


顺便说一句:Java命名约定规定类名以大写字母开头,而Iterfaces通常以字母“ I”开头
因此,最好将接口命名为IOnConnectListener

09-26 04:08