nativescript - 如何将数组数组传递给Java函数?
问题描述
我想用JavaScript创建一个
new android.content.res.ColorStateList(states,colors)
定义为
public ColorStateList (int[][] states, int[] colors)
我无法弄清楚如何传递int[][] states
参数。
我试过了:
一个。
var states = [
[android.R.attr.state_pressed],
[android.R.attr.state_enabled],
];
结果:
Error: Cannot marshal JavaScript argument 16842919,16842910 at index 0 to Java type.
(16842919,16842910 是数组中的两个常量。)
B.
var states = Array(2);
states[0] = Array.create("int",1);
states[0][0] = android.R.attr.state_pressed;
states[1] = Array.create("int",1);
states[1][0] = android.R.attr.state_enabled;
结果:
Cannot marshal JavaScript argument [I@8033d59,[I@1e86d1e at index 0 to Java type.
解决方案
你试过用Array.create()
吗?在文档中,它说“有时您必须从 JavaScript 创建 Java 数组。对于这种情况,我们将方法 create 添加到内置 JavaScript Array 对象中。”
这句话描述了您正在尝试做的 IMO。
推荐阅读
- kotlin - 从同一行上的多个变量创建 arrayOf
- r - 如何并行化 lightgbm 拟合?
- c++ - 播放按钮声音而不停止在后台运行的音乐
- ubuntu - 使用 python 3.9.2 运行“make test”时失败:“2 个测试失败:test_embed test_tabnanny”
- python - python:psycopg2:当列只有唯一值时如何查找行
- c - 从文件中读取 struct7
- android - android 新版本应用程序无法投入生产
- c# - Asp.net WebForm - 请求之间的会话数据丢失,当在另一个域中构建 Web 应用程序(通过 Iframe)时
- javascript - 旋转圆动漫js
- ios - 减少 Rectangle SwiftUI 的可点击区域