1

我正在尝试为智能设备的 Genexus X EV 3 开发用户组件。这是关于一个个性化的 webview,我在一个项目中使用它,它工作但只使用带来 Genexus 的预定义方法,我不知道如何从 Genexus 项目调用 .java 文件的方法。在 .control 文件中,我添加了方法定义:

<Methods>
        <Method>          
          <Name>UCgoBack</Name>
               <ReturnType />
               <Parameters>
               </Parameters>
               <Signature>UCgoBack()</Signature>
        </Method>
</Methods>

Genexus 识别出用户 Control,我可以在 IntelliSense 中看到该方法,但是当我调用它时,并没有执行。谢谢你的帮助。

4

2 回答 2

2

在您的用户控件的 Android 类中,您需要实现该runMethod方法,该方法在有方法调用时由 GeneXus 调用。

这是方法的签名:

public void runMethod(String name, List<Object> parameters)

name是文件中定义的方法名称.control。在您的情况下,该parameters列表应该为空(因为您的方法没有参数)。

例如,Horizo​​ntal Grid 控件有两种方法,您可以在灵活客户端中找到实现(搜索GxMagazineViewer.java

于 2015-07-16T12:09:15.470 回答
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();
    }
}

并且必须实施这些方法。非常感谢马科斯指导我。

于 2015-07-22T22:10:52.813 回答