我'我正在尝试为智能设备开发Genexus X EV 3的用户组件。它是关于个性化的webview,我在项目中使用它,它可以工作但只使用带Genexus的预定义方法,我无法弄清楚如何调用.java文件的方法, Genexus项目。在.control文件中,我添加了方法定义:
<Methods>
<Method>
<Name>UCgoBack</Name>
<ReturnType />
<Parameters>
</Parameters>
<Signature>UCgoBack()</Signature>
</Method>
</Methods>
Genexus识别用户Control,我可以在IntelliSense中看到该方法,但是当我调用它时,不会执行。谢谢你的帮助。
答案 0 :(得分:2)
在用户控件的Android类中,您需要实现runMethod
方法,当方法调用时,GeneXus会调用该方法。
这是方法的签名:
public void runMethod(String name, List<Object> parameters)
name
是.control
文件中定义的方法名称。在您的情况下parameters
列表应为空(因为您的方法没有参数)。
例如,Horizontal Grid控件有两种方法,您可以在Flexible Client中找到实现(搜索GxMagazineViewer.java
)
答案 1 :(得分:1)
是的,必须实现IGxControlRuntime接口:
@Override
public void setProperty(String name, Object value) {
}
@Override
public Object getProperty(String name) {
return null;
}
@Override
public void runMethod(String methodName, List<Object> parameters) {
if (methodName.toLowerCase().startsWith("methodname")){
methodname();
}
}
必须实施这些方法。非常感谢Marcos指导我。