Почему Android OnClickListeners инкапсулированы интерфейсом View? - PullRequest
0 голосов
/ 01 февраля 2012

Я новичок в Android (и программирование в целом), и мне было интересно, почему интерфейс OnClickListener находится под View. Например, я мог бы настроить кнопку, чтобы при нажатии на кнопку я показывал тостовое сообщение. Почему onclicklistener должен знать что-либо о представлении?

Итак, я понимаю, что такое обратный вызов и почему вы делаете интерфейс OnClickListener чем-то, что реализует разработчик. Это многоразово. Но, может быть, я не совсем понимаю инкапсуляцию? или, может быть, я полностью упускаю смысл интерфейсов и обратного вызова?

Это скорее концептуальные вопросы, и я был бы очень признателен за любые ответы с объяснением концепции, а также, возможно, простой / краткий пример кода для объяснения.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 01 февраля 2012

Основные виды, которые мы используем, являются подклассами класса View. Смотрите это

Android определил множество интерфейсов в классе View для обработки некоторых событий, которые являются общими для любого типа представления (Button, TextView и т. Д.). Сделать API простым и удобным для программистов. Это на самом деле концепция наследования в OOPS.

Если у вас есть какие-либо сомнения, обратитесь на сайт разработчиков Android, там вы получите полную информацию.

2 голосов
/ 01 февраля 2012

Представление является суперклассом для всех виджетов, таких как Button, TextView, EditText и т. Д.

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

...