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

Java 如何确定何时在运行时调用接口方法?,java,android,xamarin.android,android-runtime,Java,Android,Xamarin.android,Android Runtime,请考虑OnTouchListener的以下问题: 将触摸事件发送到视图时调用 太好了!我明白了。我正在寻找关于接口方法的此类描述,这些方法可以重载以创建自定义动画、行、适配器等 以适配器接口的getView()方法为例说明我的困惑。我的理解是,只要适配器需要一个新的视图,android就会调用getView(),比如在列表视图中滚动并添加一个新单元格。但我不知道如何从文件中得出这个结论 对于getView(),这似乎很直观。但其他接口,如SectionIndexor,我不认为是。我经常努力重载接

请考虑OnTouchListener的以下问题:

将触摸事件发送到视图时调用

太好了!我明白了。我正在寻找关于接口方法的此类描述,这些方法可以重载以创建自定义动画、行、适配器等

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


对于getView(),这似乎很直观。但其他接口,如SectionIndexor,我不认为是。我经常努力重载接口方法,因为我不知道它们在运行时是如何交互的。这有文件记录吗

Microsoft文档定义了如下界面:

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

Java和C#接口之间存在细微的差异。 (假设您来自Java背景)

现在您在抽象类的重写方法和接口方法之间存在混淆。

GetView方法是Android抽象类BaseAdapter的一个方法。 因此,要想获得关于这个的信息,首先需要研究它,然后找到其中的方法。在那里你可以得到这个方法的确切描述以及它的作用。注意:Xamarin.Android的工作原理与原生Android完全相同,因此您可以使用相同的文档来理解这些方法

注意:实现不同于C语言和Java语言

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

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

现在,如果您使用一个接口方法,这个方法是刚刚定义的,并且您必须在继承它的类中使用这个方法,所以这个方法将被添加到那个类中,并且不会像在抽象类中那样作为重写方法

现在,如果你想了解什么时候调用接口方法,你需要检查Android文档中的接口,例如,然后找到你需要了解的方法,例如

以防你什么都不懂

祝你好运


愉快的编码。

当ListView试图为其ListItems设置模板视图时,会调用GetView,因此基本上所有与单元格创建相关的内容都会添加到该列表中。谢谢,您是如何了解这一点的?也许我的问题太笼统了,但我想知道如何确定接口或基类方法如何交互。作为最近的一个例子,我试图为列表视图创建一个索引。文档显示了接口方法的作用,但我需要在线查找示例才能发现它们实际上是如何交互的。(我不想澄清ISectionIndex,我不知道人们是如何从文档中弄明白这些事情的)很简单,你需要了解c#以及一些原生android的背景知识,首先要知道需要做什么,例如有一个触摸监听器,既然它是一个监听器,那么你应该知道它是一个接口,那就是android,现在匿名类不能在xamarin android中使用它的C#你也可以检查C#对象浏览器来了解特定的属性返回类型是什么,然后使用它来了解你需要做什么。谢谢你的帮助。抱歉,我不认为我的问题是对的,我已经编辑了我原来的帖子。我正在寻找接口方法如何交互以及它们在运行时如何相互关联的描述。。。或者只是一个我能自己弄明白这些信息的方法哇谢谢你一直支持我!因此,在GetView方法的示例中,通过文档跟踪它:抽象类BaseAdapter实现ListAdapter接口,它实现需要GetView()方法的适配器接口。。。但是在文档中,我没有看到任何关于何时在运行时调用该方法的规范:因此,就像您发布的示例中一样,我可以在文档中看到,在准备使用映射时调用onMapReady()方法。我找不到getView()方法的类似描述。也许只是我觉得文档太模糊了,但如果这就是全部的话,那么我猜就是这样的!对我来说,对它的描述似乎足以理解它的功能,可能每个人都有不同,只是我的观点不同,如果你不理解任何东西,你可以在这里问,还有一个明显的原因,就是getview没有提到同样的内容,因为大家都知道调用arrayadapter getview来获取当前视图的模板