簡體   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