Android RxJava登录并获取用户信息

Android RxJava登录并获取用户信息,android,rx-java,retrofit,Android,Rx Java,Retrofit,我有两个函数logiuser和getuserinformation使用RxJava2和RxJava2。登录并获取userid后,如何从userid和setText用户信息中获取textView的userinformation 谢谢。这是我的密码: TextView textView; Maybe<User> loginUser(String username, String password) { return RetrofitClient.getClient().crea

我有两个函数
logiuser
getuserinformation
使用RxJava2和RxJava2。登录并获取userid后,如何从userid和setText用户信息中获取textView的userinformation

谢谢。这是我的密码:

TextView textView;

Maybe<User> loginUser(String username, String password) {
    return RetrofitClient.getClient().create(RetrofitInterface.class)
            .loginUserRx("http://10.0.2.2:3000/users", username, password);
}

Maybe<UserInfo> getUserInformation(String id) {
    return RetrofitClient.getClient().create(RetrofitInterface.class)
            .getUserInfoById("http://10.0.2.2:3000/userinformation", id);
}

loginUser(username, password)
  .subscribeOn(Schedulers.io())
  .observeOn(AndroidSchedulers.mainThread())
  ...........
UserInfo.java

public class UserInfo {
@SerializedName("id")
@Expose
private String id;
@SerializedName("name")
@Expose
private String name;
@SerializedName("address")
@Expose
private String address;

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}
}
那样做

loginUser(username, password)
            .flatMap(user -> getUserInformation(user.getId()))
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(userInfo ->  { /* TODO set info in textView */ }, error -> { /* TODO handle error */  })

首先调用loginuser,然后在回调成功时再次调用特定用户的getuserinformation。在登录方法成功时触发getUserInfo回调。。。
loginUser(username, password)
            .flatMap(user -> getUserInformation(user.getId()))
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(userInfo ->  { /* TODO set info in textView */ }, error -> { /* TODO handle error */  })