Android RxJava记得变量

时间:2016-04-29 12:07:57

标签: android arrays json string rx-java

我正在学习RxJava。

我的数据:

  • 字符串变量 - 命令

我的目标:

  • 拆分字符串(空格作为正则表达式) - 完成
  • 检查数组是否包含元素 - 已完成
  • 将数组映射到字符串(foreach) - 完成
  • 重要的是:我必须记住分割后的第一个字符串,因为它在订阅中是必需的
  • 我知道我的第二个字符串是可选的。如果存在则可以是json或常规字符串
  • 我必须知道第二个字符串中是什么(不存在/ json /常规字符串)并执行不同的操作(订阅)。

我的代码:

Observable.just(command)
                .map(s -> s.split(" "))
                .filter(strings -> strings.length > 0)
                .flatMap(Observable::from)
//                .remember my first string
                .skip(1)
                .filter(s1 -> s1 != null)
//                .handle if s1 == null - it means that 2nd string does not exitst
                .map(this::getJson)
//                .onErrorResumeNext( * subscribe on that string element*) // regular string
//              IF getJson return JSONObject
//                .subscribe(jsonObject -> myMethod(firstString, jsonObject))

我是否以正确的方式思考它?怎么做得好?

1 个答案:

答案 0 :(得分:2)

当您\) flatMap数组并跳过第一个String时,您将首先丢失String

如果你想使用第一个和第二个String,你必须同时发射它们。

String