CnBeta是我本人常去的科技资讯站点,刚好最近在学习android开发,就萌生了自己写了一个cnbeta的android客户端想法。
原理自然是很容易想到的:
- 首先获取cnbeta新闻列表页的html代码,然后提取出自己需要的信息(新闻标题、连接)显示在ListView中。
- ListView的底部有一个“加载更多”的按钮,在点击加载第二页新闻列表
- 当点击ListView的某一条新闻时,在获取相应新闻页的代码,提取出新闻正文显示。
- 当然本地存储是不能少的,当加载一条新闻时,首先判断在本地数据库中是否已经有此新闻(新闻的网页链接可以作为标识符),本地有的话直接从数据库中读取,如果没有则从网页加载,然后顺便存入数据中,方便下次阅读。
- 为了节省流量,加上是否显示图片的设置。
其中用到的部分相关的知识点在我前几篇博客中有写:
- 使用Jsoup 解析网页 http://blog.csdn.net/barryhappy/article/details/7366654
- TextView显示图片的方法:http://blog.csdn.net/barryhappy/article/details/7370313
- 使用Preference保存设置:http://blog.csdn.net/barryhappy/article/details/7381544
- 加载资源时显示ProgressDialog提示:http://blog.csdn.net/barryhappy/article/details/7376231
- ……
在写得过程中还遇到的一个问题是:cnbeta的网页在加载“更多”新闻时使用了ajax技术,导致了我在试图获取第二页新闻时遇到了很大困难……
后来的解决办法是:我发现了cnbeta还有一个手机版的页面,那个网页分析起来就容易的多了(相当于是绕过了分析ajax加载地址的问题)
总而言之,前后加起来大概有三四天的时间,边学边写,最后东西是基本上能用了。
虽然cnbeta以读者评论犀利而出名,但是不喜欢看评论,所以就没有做评论的功能。
--------------------2013-10月添加---start----------------------------
由于CSDN改版,以下代码的新闻详情不能显示了,需要修改代码。
我懒得改了,需要的同学可以自己尝试修改一下。
--------------------2013-10月更新---end--------------------------------
应用截图如下,(在我的小米手机(内核4.0.3)运行效果):
![](http://hi.csdn.net/attachment/201203/23/0_1332515115YMb6.gif)
![](http://hi.csdn.net/attachment/201203/23/0_1332515163zAt7.gif)
![](http://hi.csdn.net/attachment/201203/23/0_1332515074tCiD.gif)
另外我把它传到了机锋上,欢迎下载支持、交流、学习~ ~ http://apk.gfan.com/Product/App244198.html
--------------------2013-10月更新--------------------
--------------------2013-10月更新--------------------