将方法添加到Android中生成的Genexus用户控件

时间:2015-07-15 20:50:33

标签: android genexus genexus-sd

我'我正在尝试为智能设备开发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中看到该方法,但是当我调用它时,不会执行。谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

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

这是方法的签名:

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

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

例如,Horizo​​ntal 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指导我。