Как получить доступ к контексту в неактивных классах - PullRequest
3 голосов
/ 15 октября 2010

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

buttonRegister.setOnClickListener(new RegisterButtonClickAction());

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

Спасибо
b3n

1 Ответ

1 голос
/ 15 октября 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...