local log = luajava.bindClass("android.util.Log") local tag = "main.lua" log:i(tag, "file is nil") newInstance javaObject = luajava.newInstance(类名全称) javaObject = luajava.newInstance(类名全称,[构造方法参数(可变参数)]) //===== = local dog = luajava.newInstance("com.water.Person") dog:setName("3water") local dog = luajava.newInstance local timeAnimator = luajava.newInstance('android.animation.TimeAnimator') local timeListener = luajava.createProxy
扯远了,回到标题,看下怎样在Android平台上用luajava来使lua和java融为一体。 luajava在android平台上已经有了移植,代码能够从https://github.com/mkottman/AndroLua下载。 至于编译和把luajava增加自己的项目中,不多讲,參考AndroLua的代码就能够了。 以下来关注一下怎样用lua来和android进行交互: 最简单的一个样例: function launchSetting(context) intent = luajava.newInstance 的使用,该样例注冊了一个按扭的Click的Listener 注意下面代码: local id = luajava.bindClass(“sk.kottman.androlua.R$id”)
12-17 11:20:54.336 1262-1335/com.happyelements.AndroidAnimal E/evab: className = org.keplerproject.luajava.LuaJavaAPI 12-17 11:20:54.340 1262-1335/com.happyelements.AndroidAnimal E/evab: className = org.keplerproject.luajava.LuaJavaAPI
经过之前的介绍,大家或多或少应该能了解到,Groovy 当中单引号引起来的也是字符串字面量,因此我们会面对大量这样的写法: include ':app',':luajava', ':luajavax' 点击 Replace All,替换之后所有的单引号都就变成了双引号: include ":app",":luajava", ":luajavax" 2. 给方法调用加上括号 还是以 settings.gradle 当中的这句为例: include ":app",":luajava", ":luajavax" 它实际上是一个方法调用,我们提到过在 Groovy 点击全部替换,这时候你就发现所有的方法调用都加上了括号: include(":app",":luajava", ":luajavax") 实际上通过正则表达匹配替换的做法不是完美的做法,如果想要精确识别方法调用 luajava 和 luajavax 两个模块的 build.gradle 是类似的,大家可以自己练习,我们就不再专门介绍。 4.
item.title, 0).show() end function getView() local view = loadlayout(layout) adapter = LuaAdapter(luajava.createProxy convertView end })) listview.setAdapter(adapter) listview.setOnItemClickListener(luajava.createProxy
在某些业务场景下,我们可能会遇到 lua 中要调用 java 代码情况,当然这个用 JNI 肯定是可以做到的,但是有更加方便的办法:LuaJavaBridge(LuaJava)和 LuaJ。
点击关注公众号,Java干货及时送达 在某些业务场景下,我们可能会遇到 lua 中要调用 java 代码情况,当然这个用 JNI 肯定是可以做到的,但是有更加方便的办法:LuaJavaBridge(LuaJava
作为参数传递给 Java 方法 ---- 在某些业务场景下,我们可能会遇到 lua 中要调用 java 代码情况,当然这个用 JNI 肯定是可以做到的,但是有更加方便的办法:LuaJavaBridge(LuaJava