繁体   English   中英

传递Java列表时出错 <Double> 飞镖清单 <double>

[英]Error Passing java List<Double> to dart List<double>

好的,我完全遵循此示例: https : //flutter.io/platform-channels/

并尝试像这样修改它:

List<double> points;


 try {

 //Changed This 
 /*final  String  result = await platform.invokeMethod('getBatteryLevel');
 batteryLevel = 'Battery level at $result % .'; */


 //To This
 final  List<double>  result = await platform.invokeMethod('getBatteryLevel');
 points = result;
 print("Message 2");

然后在MainActivity.java中,将getBatteryLevel函数更改为此:

private List<Double> getBatteryLevel() {

        List<Double> list = Arrays.asList(1.38, 2.56, 4.3);
        return list;

最后将MethodCall更改为:

List<Double> batteryLevel = getBatteryLevel();

  Log.i("errors", "Message");
  result.success(batteryLevel);

但是,当我运行代码时, 消息1被打印,而消息2没有。 我注意到使用Strings和Integer这样的简单类型而不是List可以工作。 我也尝试用Java中的数组替换List,但仍然无法正常工作。 问题是我没有得到任何错误,无论是堆栈跟踪,还是任何东西。 我认为,在dart中,他正在等待从未出现过的事情,因为Dart和Java中的双打列表不一样。 但这只是我的想法。 可能是问题吗? 我该如何解决?

尝试不使用<double>接收List ,因为Dart假定List的类型是动态的而不是原始类型,因此当您尝试将List<dynamic>解析为List<double>时,会出现错误。

 final List result = await platform.invokeMethod('getBatteryLevel');

应该管用。

不要忘记在MainActivity中包含导入,看起来您正在使用ArraysList类,然后导入以下类:

import java.util.Arrays;
import java.util.List;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM