使用聚合数据的接口进行的RxAndroid学习
Demo数据源是聚合数据的免费Api,地址:https://www.juhe.cn/
配合Retrofit 完成数据请求
例子比较简单,没事使用什么复杂的操作符。
就是简单的网络数据获取。
一些常用的操作符大家可以参考官方的文档说明:
关于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学习的更多相关文章
- 以聚合数据免费接口为例,通过 Class 类继承方法,让小程序实现项目化接口调用
微信小程序数据来源,是通过接口实现的.但接口如何调,数据如何取?每个人都有不同的方法,下面以聚合数据免费接口为例. 配置接口 config.js 聚合数据请求接口需要以key作为参数. const c ...
- 聚合数据实名认证接口-java方法
只需要填入购买的APPKEY,然后直接调用方法JuheDemo.info(user_name, anchor_card);传入姓名和身份证号,根据获取的返回参数进行拆分,如res=1说明正确. //进 ...
- TP5结合聚合数据API查询天气
php根据城市查询天气情况看到有人分享java的查询全国天气情况的代码,于是我想分享一个php版本的查询天气接口.免费查询天气的接口有很多,比如百度的apistore的天气api接口,我本来想采用这个 ...
- 使用聚合数据API查询快递数据-短信验证码-企业核名
有位朋友让我给他新开的网站帮忙做几个小功能,如下: 输入快递公司.快递单号,查询出这个快件的所有动态(从哪里出发,到了哪里) 在注册.登录等场景下的手机验证码(要求有一定的防刷策略) 通过输入公司名的 ...
- 聚合数据全国天气预报api接口
查询天气预报在APP中常用的一个常用功能,聚合数据全国天气预报api接口可以根据根据城市名/id查询天气.根据IP查询天气.据GPS坐标查询天气.查询城市天气三小时预报,并且支持全国不同城市天气预报查 ...
- 举例说明如何使用【聚合数据】的API接口
0 注册[聚合数据]的账号 登陆www.juhe.cn,如图,如果没有账号,注册一个(手机号或者邮箱注册),如果有直接登陆即可. 1 搜索所需的API接口 找到聚合数据主页,在搜索框输入你想搜索的AP ...
- 聚合数据董铭彦:小程序开发的兴起将带火API数据交易
2016中关村大数据日活动近日在京举办,今年新进驻北京的聚合数据受邀参与,在13日举行的大数据交易专场论坛上,聚合数据副总裁董铭彦与参会嘉宾以"共筑数据交易产业生态,共享大数据时代红利&qu ...
- 聚合数据天气预报API-ajax 通过城市名取数据
如需要,可申请聚合数据天气预报API:https://www.juhe.cn/docs/api/id/39,并生成AppKey. 接口地址:http://v.juhe.cn/weather/index ...
- PHP 获取IP地址位置信息「聚合数据API」
聚合数据 提供了[查询IP所属区域]的服务接口,只需要以 GET 请求的方式向 API 传入 IP地址 和 APPKEY 即可获得查询结果. 这里的难点主要在于如何通过PHP获取客户端IP地址,以及如 ...
随机推荐
- 【bzoj4012】[HNOI2015]开店 动态点分治+STL-vector
题目描述 风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到人生哲学.最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱.这样的想法当然非常好啦,但是她们也发现她们面临着一个问题 ...
- 求中位数为K的区间的数目
给定一个长为 $n$ 的序列和常数 $k$,求此序列的中位数为 $k$ 的区间的数量.一个长为 $m$ 的序列的中位数定义为将此序列从小到大排序后第 $\lceil m / 2 \rceil$ 个数. ...
- 新blog新帖><
欢迎来到Mychael的无声乐章 今天搬到了博客园,以后就在这个安谧的地方创作啦OvO 把以前的博客搬了过来 以前的分类似乎崩了.... [以前一些LaTex公式可能会崩掉,那就回我原博客看吧Mych ...
- Maven多模块项目依赖管理
Maven多模块项目依赖管理及dependencies与dependencyManagement的区别 转自:http://blog.csdn.net/liutengteng130/article/d ...
- BZOJ【1606】购买干草
1606: [Usaco2008 Dec]Hay For Sale 购买干草 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 859 Solved: 63 ...
- BZOJ【1639】: [Usaco2007 Mar]Monthly Expense 月度开支
1639: [Usaco2007 Mar]Monthly Expense 月度开支 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 700 Solved: ...
- 回发或回调参数无效 “HtmlSelect”不能有类型为“LiteralControl”的子级
原文发布时间为:2009-11-14 -- 来源于本人的百度文章 [由搬家工具导入] 回发或回调参数无效 “HtmlSelect”不能有类型为“LiteralControl”的子级 出现这两个错误,一 ...
- 泛型Dictionary效率要大于HashTable!
原文发布时间为:2009-09-28 -- 来源于本人的百度文章 [由搬家工具导入] Dictionary,Hashtable, ArrayList, List学习 Dictionary 泛型的优点( ...
- Codevs 1643 & 3027 线段覆盖
1643 题意 给定若干条线段,问最多可以安排多少条使得没有重合. 思路 贪心,同安排schedule,按结束时间早的排序. Code #include <bits/stdc++.h> # ...
- uva 1149:Bin Packing(贪心)
题意:给定N物品的重量,背包容量M,一个背包最多放两个东西.问至少多少个背包. 思路:贪心,最大的和最小的放.如果这样都不行,那最大的一定孤独终生.否则,相伴而行. 代码: #include < ...