ps:本程序是android网络技术开发详解书中的代码

项目截图:

代码片段:

适配器布局的优化

public class MyAdapter extends BaseAdapter
{private LayoutInflater mInflater;private List<News> items;public MyAdapter(Context context, List<News> it){mInflater = LayoutInflater.from(context);items = it;}@Overridepublic int getCount(){return items.size();}@Overridepublic Object getItem(int position){return items.get(position);}@Overridepublic long getItemId(int position){return position;}@Overridepublic View getView(int position, View convertView, ViewGroup par){ViewHolder holder;if (convertView == null){/* 使用自定义的news_row作为Layout */convertView = mInflater.inflate(R.layout.news_row, null);/* 初始化holder的text与icon */holder = new ViewHolder();holder.text = (TextView) convertView.findViewById(R.id.text);convertView.setTag(holder);} else{holder = (ViewHolder) convertView.getTag();}News tmpN = (News) items.get(position);holder.text.setText(tmpN.getTitle());return convertView;}/* class ViewHolder */private class ViewHolder{TextView text;}
}

XML的解析

package dfzy.RSSCH;import java.util.ArrayList;
import java.util.List;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;public class MyHandler extends DefaultHandler
{private boolean in_item = false;private boolean in_title = false;private boolean in_link = false;private boolean in_desc = false;private boolean in_date = false;private boolean in_mainTitle = false;private List<News> li;private News news;private String title = "";private StringBuffer buf = new StringBuffer();public List<News> getParsedData(){return li;}/* 将解析出的RSS title返回 */public String getRssTitle(){return title;}/* XML文件开始解析时调用此方法 */@Overridepublic void startDocument() throws SAXException{li = new ArrayList<News>();}/* XML文件结束解析时调用此方法 */@Overridepublic void endDocument() throws SAXException{}/* 解析到Element的开头时调用此方法 */@Overridepublic void startElement(String namespaceURI, String localName,String qName, Attributes atts) throws SAXException{if (localName.equals("item")){this.in_item = true;/* 解析到item的开头时new一个News对象 */news = new News();} else if (localName.equals("title")){if (this.in_item){this.in_title = true;} else{this.in_mainTitle = true;}} else if (localName.equals("link")){if (this.in_item){this.in_link = true;}} else if (localName.equals("description")){if (this.in_item){this.in_desc = true;}} else if (localName.equals("pubDate")){if (this.in_item){this.in_date = true;}}}/* 解析到Element的结尾时调用此方法 */@Overridepublic void endElement(String namespaceURI, String localName,String qName) throws SAXException{if (localName.equals("item")){this.in_item = false;/* 解析到item的结尾时将News对象写入List中 */li.add(news);} else if (localName.equals("title")){if (this.in_item){/* 设置News对象的title */news.setTitle(buf.toString().trim());buf.setLength(0);this.in_title = false;} else{/* 设置RSS的title */title = buf.toString().trim();buf.setLength(0);this.in_mainTitle = false;}} else if (localName.equals("link")){if (this.in_item){/* 设置News对象的link */news.setLink(buf.toString().trim());buf.setLength(0);this.in_link = false;}} else if (localName.equals("description")){if (in_item){/* 设置News对象的description */news.setDesc(buf.toString().trim());buf.setLength(0);this.in_desc = false;}} else if (localName.equals("pubDate")){if (in_item){/* 设置News对象的pubDate */news.setDate(buf.toString().trim());buf.setLength(0);this.in_date = false;}}}/* 取得Element的开头结尾中间夹的字符串 */@Overridepublic void characters(char ch[], int start, int length){if (this.in_item || this.in_mainTitle){/* 将char[]添加StringBuffer */buf.append(ch, start, length);}}
}
    /* 设置mLink为网页连接 */Linkify.addLinks(mLink, Linkify.WEB_URLS);

android项目之RRS阅读器相关推荐

  1. android 上下滚动文字_计算机毕设项目004之Android系统在线小说阅读器

    计算机毕设项目004之Android系统在线小说阅读器 一. 项目名称 基于Android系统的在线小说阅读器 二. 项目简介 项目中的角色功能: 支持翻页动画:仿真翻页.覆盖翻页.上下滚动翻页等翻页 ...

  2. Android IT资讯网络阅读器应用源码

    这个是Android IT资讯网络阅读器应用,也是一款通过jsoup解析Html获取内容的网络阅读器,和前面的其实是类似的,也是大学时期闲暇完成,对照CSDN的Web页面元素设计进行解析提取内容,核心 ...

  3. Android TTS实现简单阅读器

    本文原创版权归 51CTO winorlose2000 所有,转载请按如下方式于文章显示位置详细标明原创作者及出处,以示尊重!! 作者:winorlose2000 原文:http://vaero.bl ...

  4. android 阅读器自动滚动,在Android手机上实现阅读器翻页效果.doc

    在Android手机上实现阅读器翻页效果 先了解各个字母表示的含义:A-把书页翻起来后看到的背面区域B-把书页翻起来后看到的下一页的一角C-当前页的可见部分.a-手指滑动页角到达的位置b-当前页翻起来 ...

  5. 基于Android的本地电子书阅读器的设计与实现Ebook(1)

    基于Android的本地电子书阅读器的设计与实现Ebook(1) 学习Android时间不久,试着做了一个本地电子书阅读器APP,因为知识浅薄并不能像其他大佬一样实现各种繁杂的功能,但可以实现基本的阅 ...

  6. android 阅读器自动滚动,Android编程实现小说阅读器滑动效果的方法

    本文实例讲述了Android编程实现小说阅读器滑动效果的方法.分享给大家供大家参考,具体如下: 看过小说都知道小说阅读器翻页有好多种效果,比如仿真翻页,滑动翻页,等等.由于某种原因,突然想写一个简单点 ...

  7. linux+手机+翻页,在Android手机上实现阅读器的翻页效果

    本篇文章来谈谈怎么使用java实现翻页效果,就像电子阅读器那样. 现在先来看看翻页的原理图: 先了解各个字母表示的含义: A-把书页翻起来后看到的背面区域 B-把书页翻起来后看到的下一页的一角 C-当 ...

  8. 基于Android的小说在线阅读器软件APP

    在我国,有很多人在业余时间喜欢看小说,因为小说独特性,可以通过书籍.手机甚至在电脑上进行阅读.当然,根据不同的人阅读的习惯不一样,一部分的喜欢书籍阅读,一部分喜欢在手机上阅读.两者都有其优势,前者不易 ...

  9. android版txt电子阅读器(一)

    闲来自己动手开发了个电子阅读器,算是功能比较简单,阅读txt文档,可以添加书签,搜索.包括:1.可以打开本地文件夹去找到要的书:2.设定背景颜色,字体等等. 这里简要的介绍一下其中的核心代码: (1) ...

最新文章

  1. 模式实例之——外观实例
  2. JSON字符串转换object错误:MorphDynaBean cannot be cast to com.softright.bean.TestBean,类中有集合类型的属性...
  3. DBUtils - Python数据库连接池
  4. Python应用实战-如何使用Plotly绘制精美图形?
  5. hihoCoder 1227 2015 北京网络赛 A题
  6. Flutter打包安卓提示请使用 -Xlint:deprecation 重新编译、请使用 -Xlint:unchecked 重新编译
  7. log4j在web中的使用
  8. MySQL只有80端口开放_Centos 开放80端口
  9. asp.net 母版页使用方法
  10. 读《你的灯亮这么》---走出问题的乌托邦
  11. Xcode的插件的路径
  12. 解决nacos不停刷日志 ClientWorker get changedGroupKeys:[] 问题
  13. ORDER BY语句报错Out of sort memory, consider increasing server sort buffer size
  14. 路由的query参数
  15. Oracle-SQL语句的逻辑读怎么计算
  16. slotformatcombinations_向未授权频谱中的小区应用时隙格式指示的方法和设备与流程...
  17. 动图设置动图设置动图设置
  18. 计算机课师生互动过多,课堂师生互动存在问题及途径分析
  19. 三星30pin引脚_led屏接口定义20PIN-30PIN
  20. 经合组织:ICO有融资优势 但还不是主流工具

热门文章

  1. 树莓派添加tft/oled显示屏
  2. 使用VSTS进行压力和性能测试(一)——创建基础的URL压力测试
  3. 机器学习基础---降维方法---局部保持投影(LPP)推导
  4. 6个基于 Spring Boot 的开源社区项目!功能强大,界面炫酷
  5. 3-1-1-Vue.js 基础回顾
  6. 钉钉OA审批可以设计项目施工管理和工程项目管理吗?
  7. 汉澳jail容器技术支持直接同时运行数百个sinox副本
  8. 微信支付 postman_微信开放支付分查询功能,凭分值可享受超1000种信用服务!
  9. 金蝶服务器连接协议,金蝶kis客户端连接主机服务器
  10. ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图视觉映射散点(气泡)组件【12】 - 湖南省