继承操作

var PrefCheckBox = (function() {
    //继承至ui.Widget
    util.extend(PrefCheckBox, ui.Widget);

    function PrefCheckBox() {
        //调用父类构造函数
        ui.Widget.call(this);
        //自定义属性key,定义在配置中保存时的key
        this.defineAttr("key");
    }
    PrefCheckBox.prototype.render = function() {
        return (
            <checkbox/>
        );
    }
    PrefCheckBox.prototype.onFinishInflation = function(view) {
        view.setChecked(PrefCheckBox.getPref().get(this.getKey(), false));
        view.on("check", (checked) => {
            PrefCheckBox.getPref().put(this.getKey(), checked);
        });
    }
    PrefCheckBox.prototype.getKey = function() {
        if(this.key){
            return this.key;
        }
        let id = this.view.attr("id");
        if(!id){
            throw new Error("should set a id or key to the checkbox");
        }
        return id.replace("@+id/", "");
    }
    PrefCheckBox.setPref = function(pref) {
        PrefCheckBox._pref = pref;
    }
    PrefCheckBox.getPref = function(){
        if(!PrefCheckBox._pref){
            PrefCheckBox._pref = storages.create("au.douyin.pref");
        }
        return PrefCheckBox._pref;
    }
    ui.registerWidget("pref-checkbox", PrefCheckBox);
    return PrefCheckBox;
})();

module.exports=PrefCheckBox;

实现接口

obj = { run: function () { print("\nrunning"); } }
r = new java.lang.Runnable(obj);

创建原生java数组

Rhino没有提供用于创建Java数组的特殊语法。java.lang.reflect.Array为此,您必须使用该类。要创建由五个Java字符串组成的数组,您可以进行以下调用:

js> a = java.lang.reflect.Array.newInstance(java.lang.String, 5);
[Ljava.lang.String;@7ffe01

要创建原始类型的数组,我们必须使用在java.lang包中关联的对象类中定义的特殊TYPE字段。例如,要创建字节数组,必须使用特殊字段java.lang.Byte.TYPE:

js> a = java.lang.reflect.Array.newInstance(java.lang.Character.TYPE, 2);
[C@7a84e4

然后,可以在允许该类型的Java数组的任何地方使用所得值。

js> a[0] = 104
104
js> a[1] = 105
105
js> new java.lang.String(a)
hi

辅助对象util

[ 'extend',
  'java',
  '__assignFunctions__',
  'format',
  'deprecate',
  'debuglog',
  'inspect',
  'isArray',
  'isBoolean',
  'isNull',
  'isNullOrUndefined',
  'isNumber',
  'isString',
  'isSymbol',
  'isUndefined',
  'isRegExp',
  'isObject',
  'isDate',
  'isError',
  'isFunction',
  'isPrimitive',
  'log' ] 

文档地址

标签: autojs

添加新评论