java 调用java代码方法
2022-12-22 14:26:23 最后更新
用法:
--调用java api java.lang.String.indexOf(String string) 查询字符56 在123456789 中位置
local c = i:cls("String")
local a = i:javax("123456789", c, "indexOf", {"String", "56"})
syso(a)

--初始化一个StringBuilderd
local a = i:javanew("java.lang.StringBuilder", {"String", "12345"})
local b = i:java(a, "java.lang.StringBuilder.append", {"String", "6789"})
local c = i:java(a, "java.lang.StringBuilder.toString")
syso(c)

local jar = i:loadjar("test.jar")
local c1 = i:cls(jar, "com.sdk.ceshi")
--调用静态方法 com.sdk.ceshi类 c 方法
local c = i:javax(nil, c1, "c", {"int", 123})
syso(c)

--调用静态变量 com.sdk.ceshi类 a 变量
local c = i:javags(nil, c1, "a")
syso(c)

--初始化com.sdk.ceshi类
--返回对象变量,输入完整类名或 cls方法的返回变量
local a = i:javanew(c1)

--访问变量,com.sdk.ceshi类 b变量
local c = i:javags(a, c1, "b")
syso(c)

--设置变量,com.sdk.ceshi类 b变量
local c = i:javass(a, c1, "b", "123456")
syso(c)

--设置回调方法
local a = i:javanew("android.widget.TextView", {"Context", activity})
local b = i:java(a, "android.widget.TextView.setText", {"CharSequence", "我是文本控件"})
--注意回调接口类名前面需要加一个“.”,如.android.view.View.OnClickListener
local b = i:java(a, "android.view.View.setOnClickListener", {".android.view.View$OnClickListener", nil},
function(st_mD,st_aS)

--系统赋值
syso(st_mD)
syso(st_aS)
end
)

说明:
支持 android 所有的api;以及 自加载的jar SDK 的 api

注意:完整类名或 方法名 或 变量名 区分大小写

传递参数:
要传递的参数可设置多个,格式为一个数组 {  } 括起来的,参数为格式:类名, 值,类名, 值...

activity:默认变量 Activity组件

javax 与 java 方法区别:
javax:第3位参数完整类名,第4位参数方法名。类名可传入 cls方法的赋值变量;总共6位参数
java:第3位参数 完整类名和方法名。总共5位参数。