我被要求将一段代码从xamarin移植到android studio(c#to java),我正在努力移植一些东西,其中包括“public event action varname1”及其到java的实现。在
它们的用法如下:
public class class1: Java.Lang.Object{
public event Action varName1;
public event Action varName2;
...
//and they are called as
varName1();
varName2();
//on the public void OnMove(MotionEvent motionEvent) method.
}
此外,它们还用于
class2:Activity{
void initialization()
{
class1 listener = new class1();
listener.varName1 += class3.Open;
listener.varName2 += class3.Close;
...
}
所以我假设每一个都可以被分解成两个需求,一个事件和一个没有参数的动作。由于操作来自系统,而且据我所知没有直接端口,所以我考虑使用在http://codingbytodesign.net/en/2016/06/06/actiont-and-funct-tresult-in-java-8/.
我也读过关于事件以及如何在java中处理它们的文章,发现这非常有用(https://scatteredcode.wordpress.com/2011/11/24/from-c-to-java-events/),但当我试图解决这两件事时,我甚至不知道从哪里开始。
我相信我可能把事情搞得太复杂了,所以我很想得到一些指导,或者如果有人能帮我举个例子来解决这个问题,我将不胜感激。
1条答案
按热度按时间ffx8fchx1#
我不认为有直接的翻译。java通常做的是实现监听器接口,这是简单的回调。
所以你的例子可以写得有点像:
然后您的类可以有一个构造函数,该构造函数将此接口作为参数并在以后调用它:
然后可以实现
MyListener
在构造ListenerConsumer
比如:或者