Demo数据源是聚合数据的免费Api,地址:https://www.juhe.cn/

配合Retrofit 完成数据请求

例子比较简单,没事使用什么复杂的操作符。

就是简单的网络数据获取。

一些常用的操作符大家可以参考官方的文档说明:

ReactiveX/RxJava文档中文版

关于RxJava入门,我也是新手,不敢妄言,给大家分享分享网上流传的大神博客:

扔物线大大的:

给 Android 开发者的 RxJava 详解

hi大头鬼hi:

深入浅出RxJava(一:基础篇)

深入浅出RxJava ( 二:操作符 )

深入浅出RxJava ( 三--响应式的好处 )

深入浅出RxJava ( 四-在Android中使用响应式编程 )

首先在项目中引入RxJava 、RxAndroid依赖:

compile 'io.reactivex:rxjava:1.0.14'
compile 'io.reactivex:rxandroid:1.1.0'

生命周期:

compile 'com.trello:rxlifecycle:0.4.0'
compile 'com.trello:rxlifecycle-components:0.4.0'

引入Retrofit依赖

compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0'

接下来就可以写代码了。

先看下运行截图:

Api可以去聚合数据官网申请。

这都是ListView的基本展示,所以程序步骤很简单:

一、先根据json数据,写出实体类。(用Gson插件迅速生成

二、根据要显示的数据创建布局。

三、编写Adapter。

四、然后从网络请求并返回数据。

五、根据数据创建Adapter并绑定到listview进行显示。

这几个都是GET请求,所以写法都一样:

创建接口:

public interface WeatherApi {

    @GET("/onebox/weather/query?")
Observable<Weather> getWeatherInfo(@Query("cityname") String phone,
@Query("key") String key);
}

创建Retrofit:

public static WeatherApi getWeatherApi() {
if (weatherApi == null) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://op.juhe.cn")
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
weatherApi = retrofit.create(WeatherApi.class);
}
return weatherApi;
}

在Activity中订阅触发代码:

RxView.clicks(btn_check).throttleFirst(3, TimeUnit.SECONDS)
.subscribe(new Action1<Void>() {
@Override
public void call(Void aVoid) {
NetWork.getWeatherApi()
.getWeatherInfo(et_city_name.getText().toString(), API_KEY)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Weather>() {
@Override
public void call(Weather weather) {
setDispaly(weather);
}
});
}
});

天气的API在代码中,可以直接使用。由于是免费接口,大家都可以申请,不过聚合数据要验证身份证。

例子可以在git上下载参考。

https://github.com/VongVia1209/RxAndroid_Demo_With_jvhe


文章来源:转载http://blog.csdn.net/castledrv/article/details/51333736

使用聚合数据的接口进行的RxAndroid学习的更多相关文章

  1. 以聚合数据免费接口为例,通过 Class 类继承方法,让小程序实现项目化接口调用

    微信小程序数据来源,是通过接口实现的.但接口如何调,数据如何取?每个人都有不同的方法,下面以聚合数据免费接口为例. 配置接口 config.js 聚合数据请求接口需要以key作为参数. const c ...

  2. 聚合数据实名认证接口-java方法

    只需要填入购买的APPKEY,然后直接调用方法JuheDemo.info(user_name, anchor_card);传入姓名和身份证号,根据获取的返回参数进行拆分,如res=1说明正确. //进 ...

  3. TP5结合聚合数据API查询天气

    php根据城市查询天气情况看到有人分享java的查询全国天气情况的代码,于是我想分享一个php版本的查询天气接口.免费查询天气的接口有很多,比如百度的apistore的天气api接口,我本来想采用这个 ...

  4. 使用聚合数据API查询快递数据-短信验证码-企业核名

    有位朋友让我给他新开的网站帮忙做几个小功能,如下: 输入快递公司.快递单号,查询出这个快件的所有动态(从哪里出发,到了哪里) 在注册.登录等场景下的手机验证码(要求有一定的防刷策略) 通过输入公司名的 ...

  5. 聚合数据全国天气预报api接口

    查询天气预报在APP中常用的一个常用功能,聚合数据全国天气预报api接口可以根据根据城市名/id查询天气.根据IP查询天气.据GPS坐标查询天气.查询城市天气三小时预报,并且支持全国不同城市天气预报查 ...

  6. 举例说明如何使用【聚合数据】的API接口

    0 注册[聚合数据]的账号 登陆www.juhe.cn,如图,如果没有账号,注册一个(手机号或者邮箱注册),如果有直接登陆即可. 1 搜索所需的API接口 找到聚合数据主页,在搜索框输入你想搜索的AP ...

  7. 聚合数据董铭彦:小程序开发的兴起将带火API数据交易

    2016中关村大数据日活动近日在京举办,今年新进驻北京的聚合数据受邀参与,在13日举行的大数据交易专场论坛上,聚合数据副总裁董铭彦与参会嘉宾以"共筑数据交易产业生态,共享大数据时代红利&qu ...

  8. 聚合数据天气预报API-ajax 通过城市名取数据

    如需要,可申请聚合数据天气预报API:https://www.juhe.cn/docs/api/id/39,并生成AppKey. 接口地址:http://v.juhe.cn/weather/index ...

  9. PHP 获取IP地址位置信息「聚合数据API」

    聚合数据 提供了[查询IP所属区域]的服务接口,只需要以 GET 请求的方式向 API 传入 IP地址 和 APPKEY 即可获得查询结果. 这里的难点主要在于如何通过PHP获取客户端IP地址,以及如 ...

随机推荐

  1. 【bzoj1336/1337/2823】[Balkan2002]Alien最小圆覆盖 随机增量法

    题目描述 给出N个点,让你画一个最小的包含所有点的圆. 输入 先给出点的个数N,2<=N<=100000,再给出坐标Xi,Yi.(-10000.0<=xi,yi<=10000. ...

  2. hdu 4096 判断路径

    思路:将每个关系当成一条有向边,查询时就判断之间存在路径. #include<iostream> #include<cstdio> #include<cstring> ...

  3. sql中的like和正则的区别

    like,模糊查询,更多的是用于匹配已知的字符,比如查询该字段含有1的记录,like ‘%1%’:但是如果要匹配不确定的,但是一个系列的字符,比如数字,最好用regexpselect * from t ...

  4. 简单实现UIlabel可复制功能

    作者 Sunshine_tt 关注 在我们日常的开发中经常会遇到一些小需求,比如需要长按控件来拷贝控件中得内容.我们知道在iOS中有三个控件自身是支持拷贝,粘贴的,如:UITextField,UITe ...

  5. World of Darkraft(codeforces 138D)

    题意:有一个 n × m 的棋盘,每个点上标记了 L; R; X 中的一个 每次能选择一个没有被攻击过的点 (i; j),从这个点开始发射线,射线形状为: 1. 若字符是 L,向左下角和右上角发,遇到 ...

  6. 【电脑使用经验】怎么查看无线网络中电脑的IP地址?

    1. 2. 3. 4. 5.

  7. PyCharm 快捷键总结

    运行 Shift+alt+F10 执行程序 调试 Shift+alt+F9 Debug调试 Shift + F9 对当前文件进行Debug F8 调试模式下 跳过 F7 调试模式下 进入 F9 快速调 ...

  8. Scala不使用null 而使用Option,None,Some的好处

    刚接触Scala时就很奇怪, 为什么Java已经有null了,却偏偏还要弄出个None 后来依然我行我素在Scala里使用null, 结果就是经常被NullPointerException折磨得阴魂不 ...

  9. idea 快速生成代码的快捷键

     psvm 加ab键   mian方法快速生成 sout 加tab键   输出打印快捷键  alt+insert      快速生成get  set 方法 itar 生成array for代码块 fo ...

  10. HDU 1568 Fibonacci【求斐波那契数的前4位/递推式】

    Fibonacci Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Proble ...