WEB开发网
开发学院软件开发Java 用开源工具创建 BlackBerry 应用程序,第 2 部分:... 阅读

用开源工具创建 BlackBerry 应用程序,第 2 部分: 构建 RSS 阅读器

 2009-12-24 00:00:00 来源:WEB开发网   
核心提示: 可以根据特定的过滤条件和排序枚举记录,如果要以排序之外的方式枚举记录,用开源工具创建 BlackBerry 应用程序,第 2 部分: 构建 RSS 阅读器(10),则要用到 RecordEnumeration,RecordEnumeration 通过调用 RecordStore 实例的 enum

可以根据特定的过滤条件和排序枚举记录。如果要以排序之外的方式枚举记录,则要用到 RecordEnumeration。RecordEnumeration 通过调用 RecordStore 实例的 enumerateRecords 方法来创建。这个方法的参数包括 RecordFilter 和 RecordComparator,它们都是 javax.microedition.rms 包的一部分。常见的做法是定义一个实现这两个接口的特定于应用程序的类,如清单 4 中的 RssFilter 类所示。


清单 4. RssFilter 类
public static class RSSFilter implements RecordFilter, RecordComparator 
  { 
    private String _type = ""; 
    private String _name = ""; 
     
    RSSFilter(String type,String name) 
    { 
      _type = type; 
      _name = name; 
    } 
     
    public boolean matches( byte[] recordData ) 
    { 
      try 
      { 
        String oneRec = new String(recordData); 
        Vector v1 = Utils.split(new String(recordData),"|"); 
        String recordType = (String) v1.elementAt(0); 
        String recordName = (String) v1.elementAt(1); 
        if (_name != null)  
        { 
          if (recordName.trim().equalsIgnoreCase(_name) && 
    recordType.equalsIgnoreCase(_type)) 
          { 
            return true; 
          } 
        } 
        else 
        { 
          // just matching type 
          if (recordType.equalsIgnoreCase(_type)) 
          { 
            return true; 
          } 
        } 
      } 
      catch (Exception e) 
      { 
        System.out.println(e); 
        e.printStackTrace(); 
      } 
      return false; 
    } 
    public int compare(byte[] rec1, byte[] rec2) 
    { 
      int comp = 0; 
      try 
      { 
        String first = new String(rec1); 
        String second = new String(rec2); 
        Vector v1 = Utils.split(first,"|"); 
        Vector v2 = Utils.split(second,"|"); 
        if (_type.equals("H")) 
        { 
          //compare name field 
          String r1 = ((String) v1.elementAt(1)).toUpperCase(); 
          String r2 = ((String) v2.elementAt(1)).toUpperCase(); 
          comp = r1.compareTo(r2); 
        } 
        else 
        { 
          // compare title field 
          String r1 = ((String) v1.elementAt(2)).toUpperCase(); 
          String r2 = ((String) v2.elementAt(2)).toUpperCase(); 
          comp = r1.compareTo(r2); 
        } 
      } 
      catch (Exception e) 
      {         
      } 
      if(comp < 0) 
      { 
        return PRECEDES; 
      } 
      else if( comp == 0 ) 
      { 
        return EQUIVALENT; 
      } 
      else 
      { 
        return FOLLOWS; 
      } 
    } 
   } 

上一页  5 6 7 8 9 10 

Tags:开源 工具 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接