学习开发新浪微博android客户端的一些事儿---刷新微博与加载更多微博

直入正题:


前一阵,我看了Ivan(http://t.qq.com/ivanhxy)的新浪微博客户端教程后,也自己动手按照他的思路来一步一步地写出这个客户端来了(这还不如叫抄出来的客户端了)。当写到“刷新微博”这个视频时,对里面如何刷新微博的做法感到很不好,而且比较耗流量(它是重新生成一个adapter,然后再去加载微博数据!---记忆中应该是这样。)。当然,这就显得有点“什么”了。


一、刷新微博

后来,我查了一下新浪微博开放平台里:http://open.weibo.com/wiki/2/statuses/friends_timeline

请求参数

  必选 类型及范围 说明
source falsestring采用OAuth授权方式不需要此参数,其他授权方式为必填参数,数值为应用的AppKey。
access_token falsestring采用OAuth授权方式为必填参数,其他授权方式不需要此参数,OAuth授权后获得。
since_id falseint64若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
max_id falseint64若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
count falseint单页返回的记录条数,默认为50。
page falseint返回结果的页码,默认为1。
base_app falseint是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。
feature falseint过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。


其中请求参数:since_id 就是用来请求最新微博的东东了。

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:-----刷新微博的方法

[java]  view plain copy
  1. private long since_id =0;  
  2.     private Paging refreshPaging = new Paging();  
  3.     /**刷新weibo数据,使用since_id参数*/  
  4.     private void RefreshWeibo() {  
  5.         //since_id  false   int64   若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。  
  6.         Log.i(TAG, "HomeActivity-->RefreshWeibo()");  
  7.         //得到当前列表的第一个微博数据,并取出它的ID   
  8.         btnRefreshWeibo.setEnabled(false);  
  9.         Status s = (Status) adaWeiboStatus.getItem(0);//得到微博数据列表中的第一个数据  
  10.         since_id = s.getId();//取得 since_id 也就是微博ID  
  11.         refreshPaging.setSinceId(since_id);  
  12.         HashMap<String, Object> params = new HashMap<String, Object>(1);  
  13.         params.put("refresh", refreshPaging);  
  14.   
  15.         addTaskInWeiBoService(this,  
  16.                 Task.REFRESH_FRIEND_TIMELINE_WEIBO,params);  
  17.     }  

二、加载更多微博

 

然而加载更多微博的方法也与刷新微博的方法类似。其中使用的请求参数是:

max_id falseint64若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
具体的方法很简单,也就是取出之前已经加载的微博数据链表的最后一个数据的max_id,  再使得Paging  morePaging.setMaxId(max_id);,再然后就传给Service中去执行。

它的实现方法与刷新微博的方法类似。

下面是一此code:-----加载更多微博

[java]  view plain copy
  1. //TODO  loadMoreWeibo  
  2. private long max_id =0;  
  3. /**morePaging 加载更多weibo数据的Paging*/  
  4. private Paging morePaging = new Paging(15);  
  5. /**加载更多weibo列表*/  
  6. private void LoadMoreWeibo() {  
  7.     // max_id   false   int64   若指定此参数,则返回ID小于或等于max_id的微博,默认为0。   
  8.     Log.i(TAG, "HomeActivity-->LoadMoreWeibo()");  
  9.     max_id = Long.parseLong(status.get(status.size()-1).getMid())-1;  
  10.     morePaging.setMaxId(max_id);  
  11.     HashMap<String, Object> params = new HashMap<String, Object>(1);  
  12.     params.put("more", morePaging);  
  13.   
  14.     addTaskInWeiBoService(this,  
  15.             Task.LOAD_MORE_FRIEND_TIMELINE_WEIBO,params);  
  16. }  

上面两份code只是微博客户端中的一部分,但说出了题目重点。(该文章写得有点草。。。)

下面三张图是我动手写(照抄的?)出来的客户端截图:可怜----界面真不好看

-------------还未完成这个东东的功能啊,其实我没有完全仿制官方微博客户端来开发的,只想来点新鲜东东。本人今年大三,下学期大四了,该准备找个适合的工作了奋斗

还有求关注我的微博   http://weibo.com/yangqinjiang    大笑




20120531


THE END



版权声明:本文为博主原创文章,未经博主允许不得转载。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值