首页 > 解决方案 > 如何将数组数组传递给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.

标签: nativescript

解决方案


你试过用Array.create()吗?在文档中,它说“有时您必须从 JavaScript 创建 Java 数组。对于这种情况,我们将方法 create 添加到内置 JavaScript Array 对象中。”

这句话描述了您正在尝试做的 IMO。


推荐阅读