Плагин расширения ExtUI представляет собой систему динамической генерации объектов и методов API Android. По этой причине он не содержит в себе готового набора виджетов, методов для работы с ним и обработчиков событий, что сократило бы его функциональность.
Вызов методов API Android производится несколько сложнее, чем вызов методов API DroidScript, поскольку для этого требуется точное указание количества аргументов и их типов. С другой стороны, это позволяет постепенно знакомиться с возможностями API Android, что весьма пригодится, если далее планируется освоить разработку мобильных приложений на Java.
Для выполнения примеров на этой странице необходимо установить плагин расширения:
Для проверки работоспособности плагина выполните пример ниже. В нём создаётся кнопка и производится её поворот на 45 градусов.
В данном примере интерфейсная функция плагина расширения runMethodNot вызывается напрямую. Это неудобно, так как при её вызове необходимо указывать тип аргументов. Упрощение вызова достигается при помощи адаптера, который можно реализовать в виде списка функций и метода call, например, setRotation.call( my_object ) или объекта с полиморфной функцией. Для удобства выберем второй вариант.
Создайте новый JavaScript-проект и добавьте в него следующий код.
Добавьте в проект новый файл methods.js, в котором и будет реализован объект-адаптер.
Код получился объёмным, но его основная часть состоит из перечня вызовов функций _Call, аргументы для которой берутся из заголовков соответствующих методов API Android. Получить их можно при помощи метода плагина GetMethods:
var _list = _plg.GetMethods( "Switch" ).split('|').join('\n\n'); alert( "Switch" + ':\n\n' + _list );
, или из справочника разработчика Android. Например, заголовок метода setPadding выглядит так:
setPadding(int left, int top, int right, int bottom)
Для вызова этого метода ему нужно передать 4 аргумента типа int. Перечисляем типы в строке через запятую и получаем требуемый аргумент для нашей функции _Call:
_Call( "int,int,int,int" );
Функциональность адаптера зависит от того, сколько методов в нём реализовано. Можно реализовать адаптер с ограниченным набором методов под тот или иной проект или один большой с максимально возможным их количеством, наполняя его постепенно.
В заключение приведу достоинства и недостатки прямого вызова интерфейсной функции плагина по сравнению с использованием адаптера для того, чтобы понять необходимость использования того или другого.
Прямой вызов интерфейсной функции плагина
Преимущества
Недостатки
Вызов интерфейсной функции через адаптер
Преимущества
Недостатки