2010-10-15 3 views
3

Я пишу свое первое приложение для Android и испытываю некоторые проблемы с передачей объектов контекста. Множество методов/конструкторов, по-видимому, требует текущего контекста (активности), который вызывает у меня некоторые проблемы в моих слушателях действий. Вместо того, чтобы все мои слушатели и обработчики были анонимными классами в классе активности, я создал классы для каждого события, которое я хотел бы обработать. Например, кнопка buttonRegister будет инициализирован как:Как получить доступ к контексту в классах неактивности

buttonRegister.setOnClickListener(new RegisterButtonClickAction()); 

Однако при этом у меня нет доступа к текущему объекту контекста внутри моего слушателя. Я мог бы передать текущий контекст в качестве параметра конструктора, но я не уверен, что это лучший выбор. Какова «наилучшая практика» для создания обработчиков/прослушивателей в Android или для работы с объектами контекста вообще?

Спасибо,
b3n

+0

Я использовал параметры конструктора или анонимные внутренние классы без проблем. – mschonaker

ответ

1

Просто пройти текущий контекст в конструкторе обработчика.

Tho использование обработчиков событий, подобных этим, может стать беспорядочным. В большинстве случаев, когда вы обрабатываете какое-то событие - например, нажатие кнопки - тогда вы хотите изменить состояния других переменных, которые находятся в вашей деятельности (изменить некоторые структуры данных, элементы пользовательского интерфейса, такие как TextView, независимо). Если класс обработчика событий находится снаружи, вам также необходимо предоставить ссылки на объекты, которые он может изменить, возможно, в его конструкторе.

Обычно я использую анонимные или, по крайней мере, внутренние классы, я думаю, что это намного проще и проще.

+0

Спасибо, это имеет смысл, хотя я хотел избежать огромных классов со всеми видами логики обработки событий и немного разбить его. – b3n

Смежные вопросы