observer.update();Java Observer Отслеживание шаблонов?
Вышеуказанный метод делает видимость наблюдателей «GONE», но я хочу изменить всех других наблюдателей, кроме наблюдателя-наблюдателя. Как я могу это контролировать?
Моих все действия наблюдатели и зарегистрировать их в сам себе конструктор, как показано ниже,
public class ParentAction extends AbstractAction implements IActionObserver{
private ArrayList<IAction> lSubItems;
private View subView;
public ParentAction(String ItemText,int drawable,ArrayList<IAction> SubItems) {
super(ItemText,drawable);
lSubItems = SubItems;
ActionHolder.getInstance().registerObserver(this);
}
@Override
public void update() {
getSubView().setVisibility(View.GONE);
} ...
ActionHolder
public class ActionHolder implements IActionSubject {
private static ActionHolder uniqueActionHolder;
private ArrayList observers;
private ActionHolder() {
observers = new ArrayList();
}
public static synchronized ActionHolder getInstance() {
if (uniqueActionHolder == null) {
uniqueActionHolder = new ActionHolder();
}
return uniqueActionHolder;
}
public void registerObserver(IActionObserver o) {
observers.add(o);
}
public void removeObserver(IActionObserver o) {
int i = observers.indexOf(o);
if (i >= 0) {
observers.remove(i);
}
}
public void notifyObserver() {
for (int i = 0; i < observers.size(); i++) {
IActionObserver observer = (IActionObserver) observers.get(i);
observer.update();
}
}
public void actionClicked(View view) {
notifyObserver();
}
}
Спасибо, что помогли мне найти путь, я имеют интерфейс IAction, который реализуется abstractAction. Так notifyObserver (действие IAction) ... работал для меня, снова спасибо – Talha
@talhakosen ok, не был уверен в точной иерархии, поэтому я изменил с 'IAction' на' AbstractAction', но я изменил его сейчас :) и yw –
да, я просто хочу дать больше информации для другого разработчика, которому понадобится этот ответ :) Еще раз спасибо .. – Talha