您如何确定何时在运行时调用接口方法?

How do you determine when interface methods are invoked at Runtime?

考虑 documentation 的 OnTouchListener,这很清楚:

Called when a touch event is dispatched to a view.

完美!我得到它。我正在寻找这种关于接口方法的描述,这些方法可以被重载以创建自定义动画、行、Adapters/whatever 等内容。

就拿Adapter接口的getView()方法这个documentation来说说我的困惑吧。据我了解,只要适配器需要新视图,getView() 就会被 android 调用,例如当您滚动浏览列表视图并添加新单元格时。但我看不出如何从文档中得出该结论。

对于 getView() 来说似乎很直观。但是我不认为像 SectionIndexor 这样的其他接口。我经常为重载接口方法而苦恼,因为我无法弄清楚它们在运行时如何交互。这有记录吗?

微软文档定义接口如下:

An interface contains definitions for a group of related functionalities that a class or a struct can implement.

Java 和 C# 接口存在细微差别,可以在 here 中找到。 (假设您来自 Java 背景)

现在您混淆了抽象 class 的重写方法和接口方法。 Check the difference here

GetView 方法是 Android 抽象 class 调用 BaseAdapter 的方法。 and hence to get info on that first you need to look into BaseAdapter then find GetView 里面的方法。在那里您可以获得该方法及其作用的确切描述。注意:Xamarin.Android 与原生 Android 的工作方式完全相同,因此您可以使用相同的文档来理解这些方法。

注意: 实现不同于 C# 到 Java。

现在接口的一个例子是 IOnMapReadyCallback,它被 Xamarin.Android 用作回调来检查地图是否准备好使用。

现在 C# 中的接口按照其命名约定以 I 开头。 例如:Android java OnTouchListener 接口成为 Xamarin 中的 IOnTouchListener Android 等等。

现在如果你使用一个接口方法,这个方法只是被定义的,你必须在你继承它的class中使用那个方法,所以这个方法将被添加到那个class 并且不会像抽象 class.

那样充当重写方法

现在,如果您想了解何时调用接口方法,则需要查看该接口的 Android 文档,例如 OnMapReadyCallback then find the method you need to understand i.e. onMapReady

万一你不明白任何东西恢复。

祝你好运!

编码愉快。