Android XML读写(二)

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

Android 新闻阅读器

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

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

java代码:

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

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

java代码:

public class Message implements Comparable< Message >{ 
static SimpleDateFormat FORMATTER =new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z"); 
private String title; 
private URL link; 
private String description; 
private Date date; 
// getters and setters omitted for brevity 
public void setLink(String link) { 
try { 
this.link = new URL(link); 
catch (MalformedURLException e) { 
throw new RuntimeException(e); 


public String getDate() { 
return FORMATTER.format(this.date); 

public void setDate(String date) { 
// pad the date if necessary 
while (!date.endsWith("00")){ 
date += "0"

try { 
this.date = FORMATTER.parse(date.trim()); 
catch (ParseException e) { 
throw new RuntimeException(e); 


@Override 
public String toString() { 
// omitted for brevity 

@Override 
public int hashCode() { 
// omitted for brevity 

@Override 
public boolean equals(Object obj) { 
// omitted for brevity 

// sort by date 
public int compareTo(Message another) { 
if (another == nullreturn 1
// sort descending, most recent first 
return another.date.compareTo(date); 


  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.

 

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

2013-06-09 10:37:53

Android开发XML读写XML解析

2013-06-09 10:25:56

Android开发XML读写XML解析

2013-06-09 11:31:13

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:04:35

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

2013-06-08 13:07:54

Android开发Android UILayout XML属

2013-06-08 13:18:50

Android开发XML构造技巧XML解析

2010-12-23 09:11:17

读写Android文件

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 13:37:28

Android开发XML解析Pull方式

2010-01-25 18:22:33

Android使用XM
点赞
收藏

51CTO技术栈公众号