我有一个活动和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