Как определить, когда методы интерфейса вызываются во время выполнения? - PullRequest
0 голосов
/ 29 августа 2018

Рассмотрим документацию для OnTouchListener, которая ясна:

Вызывается, когда сенсорное событие отправляется на просмотр.

Отлично! Я понял Я ищу такого рода описание методов интерфейса, которые могут быть перегружены для создания таких вещей, как пользовательские анимации, строки, адаптеры / что угодно.

Возьмем эту документацию для метода getView () интерфейса адаптера в качестве примера моей путаницы. Насколько я понимаю, getView () вызывается android каждый раз, когда адаптер требует нового представления, например, когда вы прокручиваете представление списка и добавляется новая ячейка. Но я не понимаю, как я могу прийти к такому выводу из документации.

Для getView () это кажется интуитивно понятным. Но другие интерфейсы, такие как SectionIndexor, я не считаю. Я часто борюсь с перегрузкой методов интерфейса, потому что не могу понять, как они взаимодействуют во время выполнения. Это задокументировано?

1 Ответ

0 голосов
/ 04 сентября 2018

Документы Microsoft определяют интерфейс следующим образом:

Интерфейс содержит определения для группы связанных функций, которые может реализовать класс или структура.

Есть небольшие отличия в интерфейсах Java и C #, которые можно найти здесь . (Предполагается, что вы из фона Java)

Теперь у вас возникла путаница между переопределенным методом абстрактного класса и интерфейсным методом. Проверьте разницу здесь

Метод GetView - это метод абстрактного класса Android под названием BaseAdapter. Base Adapter abstract class и, следовательно, чтобы сначала получить информацию об этом, вам нужно изучить BaseAdapter , а затем найти в нем метод GetView . И там вы можете получить точное описание метода и что он делает. Обратите внимание: Xamarin.Android работает точно так же, как и нативный Android, поэтому вы можете использовать ту же документацию для понимания методов.

Примечание: Реализация отличается от C # до Java.

Теперь, например, для интерфейса будет IOnMapReadyCallback, который используется в качестве обратного вызова Xamarin.Android, чтобы проверить, готова ли карта для использования.

Теперь интерфейсы в C # согласно соглашению об именах начинаются с I. Например: интерфейс Android java OnTouchListener становится IOnTouchListener в Xamarin Android и т. д. и т. д.

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

Теперь, если вы хотите понять, когда вызывается метод интерфейса, вам нужно проверить документацию Android для этого интерфейса, например, OnMapReadyCallback , а затем найти метод, который вам нужно понять, то есть onMapReady

Если вы ничего не понимаете, вернитесь.

Гудлак!

Счастливого кодирования.

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