只阅读来自RSS Feed的特定标签

问题描述:

我正试图通过关注此tutorial来了解如何为我的android应用制作RSS阅读器。 Feed是从WordPress博客生成的,我想找出一种按类别阅读的方法。目前它正在阅读整个Feed项目,但我正在尝试从列表中挑选特定类别。只阅读来自RSS Feed的特定标签

这是读取订阅源的Activity类。

// Connected - Start parsing 
     new AsyncLoadXMLFeed().execute(); 

    } 

} 

private void startLisActivity(RSSFeed feed) { 

    Bundle bundle = new Bundle(); 
    bundle.putSerializable("feed", feed); 

    // launch List activity 
    Intent intent = new Intent(SplashActivity.this, GridActivity.class); 
    intent.putExtras(bundle); 
    startActivity(intent); 

    // kill this activity 
    finish(); 

} 

private class AsyncLoadXMLFeed extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected Void doInBackground(Void... params) { 

     // Obtain feed 
     DOMParser myParser = new DOMParser(); 
     feed = myParser.parseXml(http://mywordpressblog.com/feed/); 
     if (feed != null && feed.getItemCount() > 0) 
      WriteFeed(feed); 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     super.onPostExecute(result); 

     startLisActivity(feed); 
    } 

} 

// Method to write the feed to the File 
private void WriteFeed(RSSFeed data) { 

    FileOutputStream fOut = null; 
    ObjectOutputStream osw = null; 

    try { 
     fOut = openFileOutput(fileName, MODE_PRIVATE); 
     osw = new ObjectOutputStream(fOut); 
     osw.writeObject(data); 
     osw.flush(); 
    } 

    catch (Exception e) { 
     e.printStackTrace(); 
    } 

    finally { 
     try { 
      fOut.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

// Method to read the feed from the File 
private RSSFeed ReadFeed(String fName) { 

    FileInputStream fIn = null; 
    ObjectInputStream isr = null; 

    RSSFeed _feed = null; 
    File feedFile = getBaseContext().getFileStreamPath(fileName); 
    if (!feedFile.exists()) 
     return null; 

    try { 
     fIn = openFileInput(fName); 
     isr = new ObjectInputStream(fIn); 

     _feed = (RSSFeed) isr.readObject(); 
    } 

    catch (Exception e) { 
     e.printStackTrace(); 
    } 

    finally { 
     try { 
      fIn.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    return _feed; 

} 

添加项目到列表中,然后才能检查这样的:

如果(item.getCategory()包含( “categorytoshow”)){

其添加到列表中,因为它包含的类别你想要

}

然后将其添加到列表中