luajava 学习心得
luajava 函数库 lua 使用时与 java 交互的库
指南
打印函数
1 print(luajava)2
使用中如何判断luajava库是否存在呢
1 asset(luajava, "luajava for nil!")2
函数说明及用法
'bindClass’ 函数:绑定java类到lua中
1 luajava.bindClass(类名) -- return Object | nil2
例子
1 local Toast = luajava.bindClass("android.widget.Toast")2 print(Toast)3
'new' 函数:创建一个java对象
1 luajava.new(class, args) -- return Object | nil23 调用4 object:方法名(参数)5
例子
1 local Looper = luajava.bindClass("android.os.Looper")2 local Handler = luajava.bindClass("android.os.Handler")34 handler = luajava.new(Handler, Looper:getMainLooper())5 print(handler)6
'newInstance' 函数:创建一个java对象
1 luajava.newInstance(className, args) -- return Object | nil23 调用4 object:方法名(参数)5
例子
1 local Looper = luajava.bindClass("android.os.Looper")23 handler = luajava.newInstance("android.os.Handler", Looper:getMainLooper())4 print(handler)5
'createProxy' 函数:创建一个代理对象
1 luajava.createProxy(interfaceName, invocation) -- return Object | nil23 interfaceName 接口名称4 invocation 回调方法5
例子
1 local context = luajava.bindClass("com.luaj.LuaActivity"):getContext()2 local Toast = luajava.bindClass("android.widget.Toast")3 local Looper = luajava.bindClass("android.os.Looper")45 handler = luajava.newInstance("android.os.Handler", Looper:getMainLooper())67 Runnable = luajava.createProxy("java.lang.Runnable", {8 run = function()9 Toast:makeText(context, "你好,世界!", Toast.LENGTH_SHORT):show()10 end11 })1213 handler:post(Runnable)14
代理"java.lang.Runnable"的接口 回调函数 run 输出内容 接口名称 回调函数名称一定要正确