Как выполнить итерацию по объекту MethodCall для получения параметров

#java #android #flutter

#java #Android #флаттер

Вопрос:

У меня есть некоторый конкретный код Android, и я вызываю некоторые команды в Android с параметрами.

Это код Android, который я использую сейчас для проверки конкретного имени аргумента и, если оно существует, для его извлечения:

 @Override public void onMethodCall(MethodCall call, MethodChannel.Result result) {
    if (call.method.equals("[METHOD_NAME]")) {
        if (call.hasArgument("[ARGUMENT_NAME]")) {
            final String paramVal = call.argument("[ARGUMENT_NAME]");
        }
    }
}
  

Мне интересно, как я могу выполнить итерацию по объекту, чтобы получить все параметры.

Ответ №1:

Да, вы можете выполнить итерацию. Вот как вы это сделаете.

 List<Map<String, String>> list = call.arguments();
Log.i("MyTag", "value 1 = "   list.get(0).get("key1")); // prints Apple
Log.i("MyTag", "value 2 = "   list.get(1).get("key2")); // prints Ball
  

Допустим, в dart это моя реализация.

 MethodChannel("my_method_channel").invokeMethod("METHOD_NAME", [
  {"key1": "Apple"},
  {"key2": "Ball"},
]);