Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.129.63.114] |
|
Сообщ.
#1
,
|
|
|
Нужно создать событие для класса Server. То есть когда соединение устанавливается/обрывается уведомлялись те кто на него подписался.. Вообщем не знаю точно как выразить, нужно чтобы я мог написАть что-то типа такого:
Server server = new Server(); server.setOnStateChangeListener(new OnStateChangeListener() { public void OnStateChange(int state) { // Здесь например показываем toast } }); Перелистал кучу статей, предлагают кучу способов разных, но нигде почему-то не могу найти подходящего. То реализация не та, то используют компоненты которых почему-то у меня нет Добавлено Все, разобрался. Главное - смысл понять Добавлено Если кому нужно, сделал так: В классе Server public interface ServerListener { // Класс-Listener для сервера // Изменение состояния соединения abstract void onStateChange(int state); } // Сохраненный экземпляр листенера private ServerListener listener; public void setServerListener(ServerListener _listener) { // Установить листенер listener = _listener; } Там где обьявлен класс Server: // События сервера server.setServerListener(new ServerListener() { @Override public void onStateChange(int state) { switch(state) { case 1: Toast.makeText(getApplicationContext(), "Переподключение!", Toast.LENGTH_SHORT).show(); break; } } }); |
Сообщ.
#2
,
|
|
|
Цитата public void setServerListener(ServerListener _listener) { Вообще, так же можно делать списки слушателей, чтобы было не одна реализация, а сколько угодно (как в том же swing или swt): List<IListener> listeners = new ArrayList<IListener>(); // предположим что ArrayList public void addActionListener(ActionListener listener){ this.listeners.add(listener); } public void removeActionListener(ActionListener listener){ this.listeners.remove(listener); } |
Сообщ.
#3
,
|
|
|
VisualProg а когда вызывается событие нужно пробежаться в цикле по всему ArrayList правильно?
|
Сообщ.
#4
,
|
|
|
Цитата а когда вызывается событие нужно пробежаться в цикле по всему ArrayList правильно? Да, и дёргать их метод(ы). |