【问题标题】:How to send a list of data from flutter to android java method channels or eventChannels?如何将数据列表从flutter发送到android java方法通道或eventChannels?
【发布时间】:2022-10-12 22:37:16
【问题描述】:
  void sendData() async {
    final session = StateInheritedWidget.of(context).state.session;
    String Datas;
    try {
      final String result = await sendData.invokeMethod(
          'sendData',{"bVolt":1.5,"hstring":2.5,
            "qString":3.5,"ExternalDeg":5.5,
        "extDeg":6.5,"sessionNo":int.tryParse(session) ?? 0});
      Datas = 'sendData response $result % .';
    } on PlatformException catch (e) {
      Datas = "Failed to get session response: '${e.message}'.";
    }
  }

在这里我传递一个字符串数据,我想从数据库传递对象数据并发送到 android java 并从 java 检索该数据,它如何通过方法通道?

【问题讨论】:

  • 您现在将其作为地图传递吗?你是?
  • @eamirho3ein 是的,你能分享一个示例代码吗
  • 什么样本?
  • @eamirho3ein 如何通过方法通道发送数据列表

标签: java android flutter flutter-method-channel event-channel


【解决方案1】:

您可以将其发送为List of Map,如下所示:

List<Map> data = [
        {
           "bVolt":1.5,
           "hstring":2.5,
           "qString":3.5,
           "ExternalDeg":5.5,
           "extDeg":6.5,
           "sessionNo":int.tryParse(session) ?? 0
        }
];

final String result = await sendData.invokeMethod('sendData',data);

在您的 java 部分中,您可以创建一个 for 循环并访问您的数据:

new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)
        .setMethodCallHandler(
          (call, result) -> {
               if (call.method.equals("sendData")) {
                 var data = (List<Map<String, Object>>)call.arguments;
                 for (Map<String, Object> item : data){
                     Log.d("", "item = $item");  
                 }
               } else {
                 result.notImplemented();
               }
          }
        );

【讨论】:

  • 如何从java代码中检索这些数据?
  • 我更新了我的答案,看看吧。
  • 当我在我的 java 代码上添加这个时,会出现问题和错误。 ,我认为它的 kotlin 代码在 java 中不起作用。
  • 我对 koltin 和 android 不太了解,你能把这段代码转换成 android java。
  • 你得到什么错误?
猜你喜欢
  • 2021-05-02
  • 2020-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-30
  • 1970-01-01
  • 2021-11-03
  • 2021-11-08
相关资源
最近更新 更多