[英]Converting Scala List[List[Double]] to Java 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中包含導入,看起來您正在使用Arrays
和List
類,然后導入以下類:
import java.util.Arrays;
import java.util.List;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.