您的位置:首页 > 编程语言 > Java开发

Rxjava之map()的运用

2016-07-09 15:23 555 查看
前段时间一直在看Rxjava方面的博客,终于找到了一篇个人认为入门最详细的博客——《给 Android 开发者的 RxJava 详解》作者扔物线。

网址:http://gank.io/post/560e15be2dca930e00da1083

这大神讲的非常详细,然而智商有限,我看了好几遍才略懂一二。所以打算写写博客以便以后复习。

本文的例子采用retrofit和Rxjava结合,获取手机号码归属地。具体可以看我前面的一篇博客,本文只对获取的结果进行讲解。

如果不采用map,那么代码是这样写的:

phone.getHaoMa(meditview.getText().toString(), key)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<PhoneNumInfo>() {
@Override
public void onCompleted() {

}

@Override
public void onError(Throwable e) {

}

@Override
public void onNext(PhoneNumInfo phoneNumInfo) {
mtext.setText(phoneNumInfo.getResult().getCity());
}
});


可知通过返回的photoNumInfo结果获取号码城市信息。

如果采用map(),代码如下:

phone.getHaoMa(meditview.getText().toString(), key)
.map(new Func1<PhoneNumInfo, String>() {
@Override
public String call(PhoneNumInfo phoneNumInfo) {
return phoneNumInfo.getResult().getCity();
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {

}

@Override
public void onError(Throwable e) {

}

@Override
public void onNext(String s) {
mtext.setText(s);
}
});


将返回的结果phoneNumInfo通过map直接提取当中的city
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: