Я хочу отображать уведомление, когда условие завершено в моем адаптере данных, как я могу это сделать? Уведомление У меня есть хорошая работа, когда я инициализирую основную активность или вызываю их с помощью (MainActivity)getActivity().method
в фрагменте, но я хочу назвать их из другого класса?Вызов уведомлений в других классах
ответ
Лучший способ - передать обратный вызов адаптеру данных и вызвать его при возникновении события.
Таким образом, вы можете использовать что-то вроде этого:
public class DataAdapter {
public interface OnMyEventListener{
void onMyEvent();
}
private OnMyEventListener mOnMyEventListener;
public void setOnMyEventListener(OnMyEventListener onMyEventListener) {
mOnMyEventListener = onMyEventListener;
}
private void fireOnMyEvent(){
if (mOnMyEventListener != null){
mOnMyEventListener.onMyEvent();
}
}
}
Чтобы использовать его, вы должны сделать вашу деятельность реализовать интерфейс OnMyEventListener и добавить метод onMyEvent();
public void onMyEvent(){
showNotification();
}
И после создания адаптера вы можете установить активность слушать его с помощью вызова метода setOnMyEventListener. Каждый раз, когда вы обнаруживаете событие, вы можете вызвать метод fireOnMyEvent в адаптере.
И вы можете установить слушателя следующим способом:
DataAdapter adapter = new DataAdapter();
adapter.setOnMyEventListener(this).
Update: Если вы имеете в виду путем уведомления «система оповещения» http://developer.android.com/guide/topics/ui/notifiers/notifications.html вы можете сделать это путем передачи контекста адаптера и делать то же самое что вы делаете в своей деятельности, за исключением того, вы не можете позвонить напрямую
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
следует использовать объект контекста, который вы проходите, так что вы можете позвонить:
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
понять все это, и я думаю, что могу работать, но не знаю, где положить setOnMyEventListener – DDD1994
, вы можете сделать это после того, как вы создали экземпляр адаптера: –
да, я имею в виду системное уведомление, поэтому вы говорите, что есть другой метод, который я могу назвать его напрямую? без выполнения всего кода выше? – DDD1994
- 1. вызов функций в других классах при ударе UIButton
- 2. Получить переменную в других классах
- 3. Сравнить объекты в других классах
- 4. Функции UIApplicationDelegate в других классах
- 5. Перегрузка операторов в других классах
- 6. Вызов базовых методов в классах
- 7. Суперконсольный вызов в классах Blackberry.
- 8. Конструктор вызов в наследуемых классах
- 9. Java: использование итераторов в других классах
- 10. Переменная Objective-C, доступная в других классах
- 11. Как использовать этот метод в других классах?
- 12. Как получить переменные в других классах?
- 13. Опорные переменные, указанные в других классах
- 14. Как использовать переменные в других классах
- 15. C# использовать ints в других классах
- 16. Доступ к переменным в других классах (Java)
- 17. Использование измененных массивов в других классах
- 18. , используя функцию из класса в других классах
- 19. Использование классов GPS События в других классах
- 20. Реализация параметров объекта в других классах
- 21. Переменная мне нужно использовать в других классах
- 22. Объекты Python в других классах или отдельно?
- 23. Наиболее эффективная практика доступа к объектам в других классах: Java
- 24. Вызов метода перезаписи в скомпилированных классах Java
- 25. Вызов идентичных методов в базовых классах
- 26. Метод Java вызов в анонимных классах
- 27. Вызов метода в анонимных (внутренних) классах
- 28. Вызов той же функции в разных классах
- 29. [cocos2d] с помощью CCSprite из HelloWorldLayer в других классах
- 30. Вызов других методов в java
Можете ли вы четко объяснить, что вы хотите сделать ??? –
, когда условие закончено в моем адаптере данных, я хочу вызвать общедоступное уведомление о пустоте, находящееся в основном действии – DDD1994