学习开发新浪微博android客户端的一些事儿---刷新微博与加载更多微博
2012-05-31 23:06
746 查看
学习开发新浪微博android客户端的一些事儿---刷新微博与加载更多微博
直入正题:前一阵,我看了Ivan(http://t.qq.com/ivanhxy)的新浪微博客户端教程后,也自己动手按照他的思路来一步一步地写出这个客户端来了(这还不如叫抄出来的客户端了)。当写到“刷新微博”这个视频时,对里面如何刷新微博的做法感到很不好,而且比较耗流量(它是重新生成一个adapter,然后再去加载微博数据!---记忆中应该是这样。)。当然,这就显得有点“什么”了。
一、刷新微博
后来,我查了一下新浪微博开放平台里:http://open.weibo.com/wiki/2/statuses/friends_timeline请求参数
必选 | 类型及范围 | 说明 | |
---|---|---|---|
source | false | string | 采用OAuth授权方式不需要此参数,其他授权方式为必填参数,数值为应用的AppKey。 |
access_token | false | string | 采用OAuth授权方式为必填参数,其他授权方式不需要此参数,OAuth授权后获得。 |
since_id | false | int64 | 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。 |
max_id | false | int64 | 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。 |
count | false | int | 单页返回的记录条数,默认为50。 |
page | false | int | 返回结果的页码,默认为1。 |
base_app | false | int | 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。 |
feature | false | int | 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。 |
1.取出你之前请求的微博数据链表中的第一条数据的since_id。----->像这样 since_id = status.getId(); //status就是第一条微博数据
2.新建一个 Paging refreshPaging = new Paging();,再refreshPaging.setSinceId(since_id);
3.之后再把refreshPaging作为一个任务参数传给Service,在Service中调用weibo.getFriendsTimeline(refreshPaging);
4.再之后,新建一个Task.REFRESH_FRIEND_TIMELINE_WEIBO来标识刷新微博任务。然后。。。(太多然后的话则不好解释了
)
下面是一些code:-----刷新微博的方法
private long since_id =0; private Paging refreshPaging = new Paging(); /**刷新weibo数据,使用since_id参数*/ private void RefreshWeibo() { //since_id false int64 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。 Log.i(TAG, "HomeActivity-->RefreshWeibo()"); //得到当前列表的第一个微博数据,并取出它的ID btnRefreshWeibo.setEnabled(false); Status s = (Status) adaWeiboStatus.getItem(0);//得到微博数据列表中的第一个数据 since_id = s.getId();//取得 since_id 也就是微博ID refreshPaging.setSinceId(since_id); HashMap<String, Object> params = new HashMap<String, Object>(1); params.put("refresh", refreshPaging); addTaskInWeiBoService(this, Task.REFRESH_FRIEND_TIMELINE_WEIBO,params); }
二、加载更多微博
然而加载更多微博的方法也与刷新微博的方法类似。其中使用的请求参数是:max_id | false | int64 | 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。 |
它的实现方法与刷新微博的方法类似。
下面是一此code:-----加载更多微博
//TODO loadMoreWeibo private long max_id =0; /**morePaging 加载更多weibo数据的Paging*/ private Paging morePaging = new Paging(1, 5); /**加载更多weibo列表*/ private void LoadMoreWeibo() { // max_id false int64 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。 Log.i(TAG, "HomeActivity-->LoadMoreWeibo()"); max_id = Long.parseLong(status.get(status.size()-1).getMid())-1; morePaging.setMaxId(max_id); HashMap<String, Object> params = new HashMap<String, Object>(1); params.put("more", morePaging); addTaskInWeiBoService(this, Task.LOAD_MORE_FRIEND_TIMELINE_WEIBO,params); }
上面两份code只是微博客户端中的一部分,但说出了题目重点。(该文章写得有点草。。。)
下面三张图是我动手写(照抄的?)出来的客户端截图:
----界面真不好看
-------------还未完成这个东东的功能啊,其实我没有完全仿制官方微博客户端来开发的,只想来点新鲜东东。本人今年大三,下学期大四了,该准备找个适合的工作了
还有求关注我的微博 http://weibo.com/yangqinjiang
20120531
THE END
相关文章推荐
- 学习开发新浪微博android客户端的一些事儿---刷新微博与加载更多微博
- android开发我的新浪微博客户端-阅读微博功能篇(6.2)
- Android开发之ListView列表刷新和加载更多实现方法
- android开发我的新浪微博客户端-阅读微博功能篇(6.2)
- android开发我的新浪微博客户端-阅读微博UI篇(6.1)
- android开发我的新浪微博客户端-阅读微博UI篇(6.1)
- android开发我的新浪微博客户端-阅读微博UI篇(6.1)
- android开发我的新浪微博客户端-阅读微博功能篇(6.2)
- android 上拉刷新下拉加载更多的开源框架 XRefreshView
- 【商城开发四】Android商品详情全部评价(下拉刷新+上滑加载更多)
- 学习笔记 android开发 一些函数记录
- Android开发的一些不错的学习资料
- 搭建openfire Android 客户端学习和开发【二】spark源码导入eclipse
- 记录学习Android开发路上一些值得重复看的文章
- Android腾讯微博客户端开发四:微博发送篇(QQ表情,@搜索)
- Android项目实战_新浪微博客户端开发过程中遇到的问题及解决办法01
- Android ListView下拉与上拉刷新加载更多(一)
- 开发新浪微博android客户端
- 【技术共享】《新浪微博Android客户端开发完整视频 Touch Android版》
- android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器