Android XML读写(二)

移动开发 Android
本文将介绍一种典型的多态行为 — 提供相同行为的不同实现(不同的 XML 解析算法),并展示了如何在Java代码中使用一个接口建立这一模型。

Android 新闻阅读器

应用程序将从热门 Android 开发人员站点 Androidster 获取一个 RSS 提要,并将它解析为一组简单的 Java 对象,您可以使用这些对象构建一个 Android ListView(参见下载部分获取源代码)。这是一种典型的多态行为 — 提供相同行为的不同实现(不同的 XML 解析算法)。清单 1 展示了如何在 Java 代码中使用一个接口建立这一模型。

清单 1. XML 提要解析器接口

java代码:

  1. package eoe.android; 
  2. import java.util.List; 
  3. public interface FeedParser { 
  4. List< Message > parse(); 

java代码:

  1. public class Message implements Comparable< Message >{ 
  2. static SimpleDateFormat FORMATTER =new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z"); 
  3. private String title; 
  4. private URL link; 
  5. private String description; 
  6. private Date date; 
  7. // getters and setters omitted for brevity 
  8. public void setLink(String link) { 
  9. try { 
  10. this.link = new URL(link); 
  11. catch (MalformedURLException e) { 
  12. throw new RuntimeException(e); 
  13. public String getDate() { 
  14. return FORMATTER.format(this.date); 
  15. public void setDate(String date) { 
  16. // pad the date if necessary 
  17. while (!date.endsWith("00")){ 
  18. date += "0"
  19. try { 
  20. this.date = FORMATTER.parse(date.trim()); 
  21. catch (ParseException e) { 
  22. throw new RuntimeException(e); 
  23. @Override 
  24. public String toString() { 
  25. // omitted for brevity 
  26. @Override 
  27. public int hashCode() { 
  28. // omitted for brevity 
  29. @Override 
  30. public boolean equals(Object obj) { 
  31. // omitted for brevity 
  32. // sort by date 
  33. public int compareTo(Message another) { 
  34. if (another == nullreturn 1
  35. // sort descending, most recent first 
  36. return another.date.compareTo(date); 

 

责任编辑:闫佳明 来源: my.eoe.cn
相关推荐

2013-06-09 10:04:35

Android开发XML读写XML解析

2013-06-09 12:49:15

Android开发XML读写XML解析

2013-06-09 12:53:05

Android开发XML读写XML解析

2013-06-09 13:07:23

Android开发XML读写XML解析

2013-06-09 10:25:56

Android开发XML读写XML解析

2013-06-09 10:37:53

Android开发XML读写XML解析

2013-06-09 11:31:13

Android开发XML读写XML解析

2011-11-08 10:01:53

TinyXML

2011-04-18 10:47:06

XML

2013-06-08 13:02:11

Android开发XML解析

2013-06-08 11:04:18

Android开发Pull解析XMLAndroid XML

2010-12-23 09:11:17

读写Android文件

2013-06-08 13:07:54

Android开发Android UILayout XML属

2013-06-08 13:18:50

Android开发XML构造技巧XML解析

2013-06-08 12:49:03

Android开发XML定义菜单

2011-04-12 14:09:55

XML

2013-06-08 13:29:27

Android开发DOM读取XMLXML解析

2013-04-01 14:35:10

Android开发Android自定义x

2013-06-08 11:13:00

Android开发XML解析

2013-06-08 13:37:28

Android开发XML解析Pull方式
点赞
收藏

51CTO技术栈公众号