2015-07-15 3 views
1

Я пытаюсь разработать пользовательский компонент для Genexus X EV 3 для смарт-устройств. Речь идет о персонализированном веб-просмотре, я использовал его в проекте, он работает, но только с использованием предопределенных методов, которые приводят Genexus, я не могу понять, как вызвать метод .java-файла из проекта Genexus. В файле .control я добавил определение метода:Добавьте метод к пользовательскому элементу Genexus, сделанный в Android

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

Genexus распознает пользовательский элемент управления, я могу увидеть метод в IntelliSense, но когда я это называю, не выполняется. Спасибо за помощь.

ответ

2

В вашем Android-классе User Control вам необходимо реализовать метод runMethod, который вызывается GeneXus при вызове метода.

Это подпись метода:

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

name это имя метода, как это определено в файле .control. Список parameters должен быть пустым в вашем случае (поскольку ваш метод не имеет параметров).

В качестве примера управления Горизонтальная сетка имеет два метода, вы можете найти реализацию в гибком Client (поиск GxMagazineViewer.java)

+0

Я добавил метод к классу и все еще не работает. Кажется, что genexus не распознает этот метод. Если мне нужно реализовать другой интерфейс, чем «IGxEdit», в двух примерах я реализую «IGxControlRuntime», но у меня нет документации этого интерфейса. – vadim

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(); 
    } 
} 

и эти методы должны быть реализованы. Большое спасибо Маркосу за то, что он меня руководил.