微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Android 中将不同的字符串添加到不同的数组列表的更好方法是什么?

如何解决在 Android 中将不同的字符串添加到不同的数组列表的更好方法是什么?

我正在尝试解析 RSS 提要。为此,我有一个 RSSHandler。

public class RSSHandler extends DefaultHandler {
    boolean item = false;
    int DATA_VALUE = 0;

    private static ArrayList<String> photoUrl = new ArrayList<>();
    private static ArrayList<String> title = new ArrayList<>();
    private static ArrayList<String> hits = new ArrayList<>();

    private static StringBuffer RSSResult = new StringBuffer();

    public static StringBuffer getRSSResult() {
        return RSSResult;
    }

    public void setRSSResult(StringBuffer RSSResult) {
        this.RSSResult = RSSResult;
    }


    @Override
    public void startElement (String uri,String localName,String qName,Attributes attrs) throws SAXException {

        DATA_VALUE = 0;
        if (localName.equals("item")) {
            item = true;
            if (RSSResult != null && RSSResult.length() > 0) {
                Feed.add(getRSSResult());
                setRSSResult(new StringBuffer("\n"));
            }
        }

        if (item) {
            if (localName.equals(Constants.RSS_TITLE)) {
                DATA_VALUE = 1;
            } else if (localName.equals(Constants.RSS_LINK)) {

            } else if (localName.equals(Constants.RSS_DESCRIPTION)) {
              
            } else if (localName.equals(Constants.RSS_PUB_DATE)) {

            } else if (localName.equals(Constants.RSS_SOURCE)) {

            } else if (localName.equals(Constants.RSS_PICTURE)) {
                DATA_VALUE = 2;
            } else if (localName.equals(Constants.RSS_HITS)) {
                DATA_VALUE = 3;
            } else if (localName.equals(Constants.RSS_NEWS_TITLE)) {
                DATA_VALUE = 1;
            } else if (localName.equals(Constants.RSS_NEWS)) {
                
            }
        }

    }

    @Override
    public void endElement(String namespaceURI,String qName) throws SAXException {
       
    }

    public void characters(char[] ch,int start,int length) throws SAXException {

        String cdata = new String(ch,start,length);
        if (DATA == 1) {
           title.add(cdata.trim())
        } else if (DATA == 2) {
           photoUrl.add(cdata.trim())
        } else if (DATA == 3) {
           hits.add(cdata.trim())
        }
       
   }

}

我怎样才能避免在两个函数中使用如此多的 if-else——startElement() 和 characters()。我正在考虑使用一个临时数组列表并将其映射到所需的 Arraylist——(photoUrl、标题点击数),就像在 C 中使用指针一样。

我能否避免在我的任务中为不同类型的字符串使用如此多的数组列表?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?