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

时间:2018-08-29 02:06:23

标签: java android xamarin.android android-runtime

考虑清楚的OnTouchListener的documentation

  

在将触摸事件调度到视图时调用。

完美!我知道了。我正在寻找有关接口方法的描述,可以重载以创建自定义动画,行,适配器/任何东西之类的东西。

以这个documentation作为适配器接口的getView()方法的例子,我感到困惑。我的理解是,只要适配器需要一个新视图,android就会调用getView(),例如在列表视图中滚动并添加新单元格时。但是我看不出如何从文档中得出这个结论。

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

1 个答案:

答案 0 :(得分:1)

Microsoft文档定义的接口如下:

  

接口包含类或结构可以实现的一组相关功能的定义。

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

现在,您在抽象类的重写方法和接口方法之间感到困惑。  Check the difference here

GetView方法是Android抽象类中称为BaseAdapter的方法。 Base Adapter abstract class,因此要获取有关该信息,您首先需要查看BaseAdapter,然后在其中找到GetView方法。在那里,您可以获得该方法及其作用的确切说明。注意:Xamarin.Android与本机Android完全相同,因此您可以使用相同的文档来了解这些方法。

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

现在,接口的示例是IOnMapReadyCallback,它由Xamarin.Android用作回调,以检查地图是否准备就绪。

现在,根据其命名约定,C#中的接口以I开头。 例如:Android java OnTouchListener接口在Xamarin Android中成为IOnTouchListener,依此类推。

现在,如果您使用接口方法,则仅定义此方法,并且必须在要继承它的类中使用该方法,因此该方法将被添加到该类中,并且不会被覆盖像抽象类一样的方法。

现在,如果您想了解调用接口方法的时间,则需要查看该接口的Android文档,例如OnMapReadyCallback,然后找到需要了解的方法,即onMapReady

以防万一您无法恢复任何内容。

祝你好运!

快乐的编码。