2014-07-09

一、Android类调用lua并回调

Android调用Lua函数,同一时候把类作为參数传递过去。然后再Lua中回调类的函数

调用lua

mLuaState = LuaStateFactory.newLuaState();mLuaState.openLibs();mLuaState.LdoString(KKLua.loadAssetsString(mContext, "lua/swallow.lua"));//将lua转换为字符串mLuaState.getField(LuaState.LUA_GLOBALSINDEX, "luaUpdate");//获取lua中的functionmLuaState.pushJavaObject(this);//传递參数mLuaState.call(1, 0);//一个參数, 0个返回值

回调的接口

public void luaDraw(int imageId, int x, int y, int scale) {//注意也必需要是public, lua才干调用到System.out.println("imageId, x, y, scale: " + imageId + ", " + x + ", " + y + ", " + scale);}
lua代码
function luaUpdate(luaCanvas)  luaCanvas:luaDraw(0, 1, 2, 1)end

二、luajava介绍( 在LuaJava库里面包括的)

lua中是没有类的。luajava库中有个luajava能够创建java中的类。并调用。

以下介绍几个方法

①newInstance(className, ...)

说明:能够依据类名创建一个Java类。同一时候返回一个lua变量与Java类相应。这样在lua中就能够直接调用Java中的方法了。

obj = luajava.newInstance("java.lang.Object")-- obj is now a reference to the new object-- created and any of its methods can be accessed.-- this creates a string tokenizer to the "a,b,c,d"-- string using "," as the token separator.strTk = luajava.newInstance("java.util.StringTokenizer",     "a,b,c,d", ",")while strTk:hasMoreTokens() do    print(strTk:nextToken())end

②bindClass(className)

说明:能够让lua中的变量相应一个Java的类(是类。不是实例),这样就能够用lua的这个变量创建实例以及调用静态类

sys = luajava.bindClass("java.lang.System")print ( sys:currentTimeMillis() )-- this prints the time returned by the function.

③new(javaClass)

说明:这个就是在②的基础上创建的

str = luajava.bindClass("java.lang.String")strInstance = luajava.new(str)


④createProxy(interfaceNames, luaObject)

⑤loadLib(className, methodName)

这两个方法眼下还没用到。以后会用了再介绍

以上。谢谢!

更多相关文章

  1. Android(安卓)---js与java的相互调用
  2. Android(安卓)ListView getView()方法重复调用导致position错位
  3. Android(安卓)Studio第十八期 - Snaphelper
  4. Android(安卓)创建全局变量和Context
  5. 使用反射调用android API中的hide方法
  6. android中wifi原理及流程分析(很经典)
  7. android操作系统默认的图片
  8. android api 中文 (73)—— AdapterView
  9. android中wifi原理及流程分析(很经典)

随机推荐

  1. [Android]WebOfCam,远程访问手机的摄像头,
  2. Nexus 5体验:Android 4.4使用体验流畅,拍照
  3. Android中设置Menu菜单的文字颜色为白色
  4. android拍照图片选取与图片剪裁
  5. Android 学习资料收集汇总
  6. [Android]APK程序卸载二次确认的实现
  7. android开发打印票据或文档的方法:android
  8. Android 小項目之--猜名字有獎!RadionButt
  9. 关于android图片的传输,android图片传输方
  10. android中发生OOM探究及解决