精华内容
下载资源
问答
  • Rss阅读器编码Rss阅读器编码Rss阅读器编码Rss阅读器编码Rss阅读器编码Rss阅读器编码
  • RSS阅读器

    2014-02-23 19:19:47
    RSS具有一种能聚合信息的功能,他描述的是xml的文档。可以把你想要获取的信息在不打开网站的情况下进行阅读,而且随着网站信息的更新,你RSS所订阅的内容也随着更新。 这是一个信息的时代,每天...一个RSS阅读器还是很

    RSS具有一种能聚合信息的功能,他描述的是xml的文档。可以把你想要获取的信息在不打开网站的情况下进行阅读,而且随着网站信息的更新,你RSS所订阅的内容也随着更新。

    这是一个信息的时代,每天像网易,搜狐,新浪,腾讯等都有很多的新闻信息,各种各类的无所不有,对于每个人来说,一般不可能对所有种类的信息都感兴趣,比如我只看移动互联网,手机,社会这种信息,所以在信息量这么大的世界,一个RSS阅读器还是很方便的,妈妈再也不用担心网站一个一个的被打开,一个网页一个网页的去浏览信息。听起来还有点小激动。

    一个Feed Demon 阅读器的链接地址点击打开链接

    下载安装后就需要订阅信息了,把你感兴趣的信息的xml地址复制到RSS中,具体操作可以看这里点击打开链接



    展开全文
  • RSS阅读器,rss新闻在线阅读,XML,Ajax
  • 周博通RSS阅读器.周博通RSS阅读器.周博通RSS阅读器.周博通RSS阅读器.周博通RSS阅读器.周博通RSS阅读器.周博通RSS阅读器.周博通RSS阅读器.
  • 安卓 RSS阅读器

    2018-11-04 15:18:39
    安卓开发的RSS阅读器,适合初学者学习安卓网络编程,Http请求
  • air rss阅读器

    2009-03-03 13:32:28
    air rss阅读器air rss阅读器air rss阅读器
  • Plenary Pro v3.0 for Android 一个现代的RSS阅读器「RSS feed阅读器」
  • rss阅读器与XML解析

    2010-09-16 13:49:33
    rss阅读器与 XML解析 XML RSS 阅读器 Winfom ASP.NET rss阅读器与 XML解析 XML RSS 阅读器 Winfom ASP.NET rss阅读器与 XML解析 XML RSS 阅读器 Winfom ASP.NET rss阅读器与 XML解析 XML RSS 阅读器 Winfom ASP.NET ...
  • RSS 阅读器文档 RSS 阅读器文档 RSS 阅读器文档 RSS 阅读器文档 RSS 阅读器文档
  • android rss阅读器源码

    2018-05-17 20:32:10
    内置android rss阅读器的源码,一般来说下载下来,就可以直接运行。
  • Java Swing RSS阅读器

    2017-12-15 17:25:30
    基于JAVA SWING的RSS阅读器,使用JDOM解析本地XML文件
  • android源代码 Rss阅读器

    热门讨论 2012-11-28 14:04:35
    原创 自己写的源代码 导入即可用 Android 应用程序开发技术 rss阅读器实例 实现通过Rss地址阅读到新闻 网页等内容 可自己添加Rss地址 并保存至数据库 功能强大
  • RSS Reader - 基于微信小程序的RSS阅读器
  • rss阅读器RSS stands for “Really Simple Syndication” or “Rich Site Summary.” It’s a document specification that allows you to easily collect and organize web-based news and information from ...
    rss阅读器

    rss阅读器

    00_lead_image_rss_orig

    RSS stands for “Really Simple Syndication” or “Rich Site Summary.” It’s a document specification that allows you to easily collect and organize web-based news and information from websites. RSS reader applications allow you to follow your favorite websites without having to visit each one separately.

    RSS代表“真正简单的联合组织”或“丰富站点摘要”。 这是一个文档规范,使您可以轻松地从网站收集和组织基于Web的新闻和信息。 RSS阅读器应用程序使您可以关注自己喜欢的网站,而不必分别访问每个网站。

    For more information about RSS, see our article defining RSS and describing how you can benefit from using it.

    有关RSS的更多信息,请参阅我们定义RSS的文章, 并描述如何从中受益

    We’ve collected some links to good desktop and web-based, free RSS applications.

    我们已经收集了一些指向优秀桌面和基于Web的免费RSS应用程序的链接。

    谷歌读者 (Google Reader)

    Google Reader is a web-based RSS reader that allows you to easily stay up to date with your favorite websites, as well as share interesting items with friends and family. It’s free to use and works in most modern browsers.

    Google阅读器是基于Web的RSS阅读器,可让您轻松了解自己喜欢的网站的最新信息,并与亲朋好友共享有趣的内容。 它是免费使用的,并且可以在大多数现代浏览器中使用。

    There is also a desktop client for Google Reader that installs on your local machine and allows you to read, mark as read, and star items.

    还有一个Google Reader 桌面客户端 ,该客户端安装在您的本地计算机上,可让您阅读,标记为已阅读和加星标。

    01_google_reader_desktop

    FeedDemon (FeedDemon)

    FeedDemon is a very popular RSS reader for Windows, that allows you to easily stay up-to-date with the latest news and information from your favorite websites. It synchronizes with Google Reader so you can sync your information among various locations. Use keywords to tag items, marking them as read. FeedDemon will also notify you when your keywords appear in any feed to which you are subscribed or even feeds to which you are not subscribed. You can also subscribe to secure feeds that require a username and password.

    FeedDemon是Windows上非常流行的RSS阅读器,它使您可以轻松地从您喜欢的网站上获取最新新闻和信息。 它与Google阅读器同步,因此您可以在各个位置之间同步信息。 使用关键字标记项目,将其标记为已读。 当您的关键字出现在您订阅的任何供稿中,甚至没有订阅的供稿中时,FeedDemon也会通知您。 您还可以订阅需要用户名和密码的安全供稿。

    FeedDemon also allows you to automatically download podcasts and transfer them to a media device.

    FeedDemon还允许您自动下载播客并将其传输到媒体设备。

    For more information about FeedDemon, see our article.

    有关FeedDemon的更多信息,请参见我们的文章

    02_feeddemon

    资讯阅读器 (Feedreader)

    Feedreader is a simple RSS reader that supports all mainstream feed formats on market today and allows you to easily subscribe to a large number of feeds, automatically downloading the updates. It has an option to open links within feeds in an external browser. Use keywords to filter your feeds and find information relevant to you. You can also combine multiple information streams into a single feed for better readability, as well as organize your feeds using nested folders.

    Feedreader是一种简单的RSS阅读器,支持当今市场上所有主流的feed格式,并允许您轻松订阅大量feed,并自动下载更新。 它具有在外部浏览器中打开源中的链接的选项。 使用关键字过滤供稿并查找与您相关的信息。 您还可以将多个信息流合并为一个提要,以提高可读性,并使用嵌套文件夹来组织提要。

    Feedreader can also learn how often each feed updates and dynamically trigger each feed to update only when needed. It can also automatically download enclosures and podcasts attached to articles.

    Feedreader还可以了解每个Feed更新的频率,并动态触发每个Feed仅在需要时进行更新。 它还可以自动下载附加到文章的附件和播客。

    Feedreader is also available as an online reader, as well as in a portable version.

    Feedreader也可以作为在线阅读器以及便携式版本使用。

    03_feedreader

    RSSOwl (RSSOwl)

    RSSOwl is a free, platform-independent RSS reader that allows you to gather, update, store, and organize information from your favorite websites that support RSS. You can save selected information in various formats for offline viewing and sharing. RSSOwl allows you to synchronize your RSS subscriptions and articles with your Google Reader account.

    RSSOwl是一个免费的,独立于平台的RSS阅读器,可让您从最喜欢的支持RSS的网站收集,更新,存储和组织信息。 您可以将选定的信息保存为各种格式,以供离线查看和共享。 RSSOwl允许您将RSS订阅和文章与Google Reader帐户同步。

    News feeds can be viewed side-by-side using multiple tabs, and you can open as many tabs as you like. The internal browser allows you to open the full content of an article from a feed.

    可以使用多个选项卡并排查看新闻源,并且您可以根据需要打开任意多个选项卡。 内部浏览器使您可以从源中打开文章的全部内容。

    Easily organize your feeds by grouping them by based on a specific attribute, such as by date, author, category, feed, and more.

    通过基于特定属性(例如,按日期,作者,类别,提要等)对提要进行分组,从而轻松组织提要。

    RSSOwl runs on Windows, Linux, and Mac OS X and supports many languages.

    RSSOwl在Windows,Linux和Mac OS X上运行,并支持多种语言。

    04_rssowl

    好消息 (GreatNews)

    GreatNews is a fast, free RSS reader that supports full page reading, so you can quickly scan through articles. You have full control over how many articles are displayed at once.

    GreatNews是一种快速,免费的RSS阅读器,支持全页阅读,因此您可以快速浏览文章。 您可以完全控制一次显示多少篇文章。

    You can avoid flashing ads and banners using the built-in display styles, providing for a clean and simple layout for reading.

    您可以避免使用内置的显示样式来闪烁广告和横幅,从而提供简洁整洁的阅读布局。

    Use labels to organize your articles, so you can view all items with the same label at once as if they were listed in the same folder. Labels also allow you to retrieve articles later with a single click. GreatNews also stores all your favorite articles locally, so you can view them when a site is down or being updated.

    使用标签来组织您的文章,以便您可以一次查看带有相同标签的所有项目,就像它们在同一文件夹中列出一样。 标签还允许您单击一下以后检索文章。 GreatNews还将所有您喜欢的文章存储在本地,因此您可以在网站关闭或更新时查看它们。

    You can import and export all your subscriptions quickly and easily. You can also find relevant information easily using the full text search with keyword highlights.

    您可以轻松快捷地导入和导出所有订阅。 您也可以使用带有关键字突出显示的全文搜索轻松地找到相关信息。

    05_greatnews

    奥美亚阅读器 (Omea Reader)

    Omea Reader is a free, easy to use RSS reader that allows you to read RSS feeds, Atom feeds, as well as newsgroups and bookmarked webpages. It’s also easy to keep your RSS feeds organized and categorized. Use Omea Reader’s custom views to separate your feeds based on certain characteristics and create custom workspaces to divide your feeds into different categories, such as work information and personal information.

    Omea Reader是免费的,易于使用的RSS阅读器,可让您阅读RSS feed,Atom feed,新闻组和加标签的网页。 使RSS feed保持井井有条和分类也很容易。 使用Omea Reader的自定义视图可基于某些特征来分离提要,并创建自定义工作区以将提要划分为不同的类别,例如工作信息和个人信息。

    With the browser integration, quickly and easily subscribe to feeds directly from within your browser. Omea Reader will find the feed for you on a website, even if you can’t find the RSS link.

    通过与浏览器的集成,可以直接从浏览器中快速轻松地订阅源。 即使您找不到RSS链接,Omea Reader也会在网站上为您找到供稿。

    06_omea_reader

    人生 (Liferea)

    Liferea (Linux Feed Reader) is a free RSS reader for Linux that allows you to synchronize your feeds with your Google Reader account. You can also read articles when offline and permanently save headlines in news bins.

    Liferea (Linux Feed阅读器)是Linux上的免费RSS阅读器,可让您将Feed与Google Reader帐户同步。 您还可以离线阅读文章,并将标题永久保存在新闻箱中。

    07_liferea

    饲料 (Feedly)

    Feedly is a free RSS reader available as an extension or add-on for all major browsers, and as a mobile application (iPhone, iPad, Android, and Kindle), allowing you to always stay in sync with your favorite websites wherever you are. If you find an article on one device you want to save for reading later on another device, you can easily save it.

    Feedly是一个免费的RSS阅读器,可作为所有主要浏览器的扩展或附件以及移动应用程序(iPhone,iPad,Android和Kindle),使您无论身在何处都能始终与自己喜欢的网站保持同步。 如果您在某台设备上找到要保存的文章,以备以后在另一台设备上阅读,则可以轻松保存该文章。

    Feedly also synchronizes with all your existing subscriptions and categories in your Google Reader account.

    Feedly还可以与您的Google阅读器帐户中的所有现有订阅和类别同步。

    08_feedly

    资讯提供通知者 (Feed Notifier)

    Feed Notifier is a free, configurable application for Windows and Mac OS X that runs in the system tray and focuses on displaying popup notifications when new items are downloaded for subscribed RSS or Atom feeds. You can navigate among the new items using the controls in the popups. Feed Notifier deactivates when your computer is idle to save bandwidth.

    Feed Notifier是Windows和Mac OS X上一个免费的,可配置的应用程序,它运行在系统托盘中,着重于为订阅的RSS或Atom提要下载新项目时显示弹出通知。 您可以使用弹出窗口中的控件在新项目之间导航。 当计算机闲置时,Feed通知程序会停用,以节省带宽。

    Feed Notifier supports all common RSS and Atom feed formats.

    Feed Notifier支持所有常见的RSS和Atom feed格式。

    09_feed_notifier

    网络阅读器 (WebReader)

    WebReader is a free desktop RSS reader (Windows, Linux, and Mac OS X), also available for Android, iPhone, iPad, Kindle Fire, and PlayBook, that allows you to easily view RSS feeds by headlines or titles, summaries, or full posts. Navigate among items using Previous and Next buttons. Read original content for each item from the website directly in the reading pane of WebReader. Each item is displayed in a clean reading view.

    WebReader是一个免费的桌面RSS阅读器(Windows,Linux和Mac OS X),也可用于Android,iPhone,iPad,Kindle Fire和PlayBook,它使您可以轻松地按标题或标题,摘要或全文查看RSS feed。帖子。 使用上一个和下一个按钮在项目之间导航。 直接在WebReader的阅读窗格中从网站阅读每个项目的原始内容。 每个项目均以清晰的阅读视图显示。

    Save complete articles, including images, for reading offline later when you don’t have an internet connection. You can also easily organize your feeds into folders, and rename, unsubscribe, or move any RSS feed.

    保存完整的文章(包括图像),以便以后在没有网络连接时脱机阅读。 您还可以轻松地将提要组织到文件夹中,并重命名,取消订阅或移动任何RSS提要。

    WebReader does not sync with Google Reader, but you can import and export OPML files, allowing you to sync indirectly. WebReader requires Adobe Air to install and run.

    WebReader不与Google Reader同步,但是您可以导入和导出OPML文件,从而可以间接同步。 WebReader需要Adobe Air才能安装和运行。

    10_webreader

    淡须 (Awasu)

    Awasu is a customizable RSS reader that allows you to sync with other feed readers and supports basic podcast management. It also allows you to search channels and filter feed items.

    Awasu是可自定义的RSS阅读器,可让您与其他供稿阅读器同步并支持基本播客管理。 它还允许您搜索频道并过滤供稿项目。

    The free version of Awasu is a limited feature version that provides basic RSS reader features. If you want more features, the Advanced version is $35 and the Professional version is $95. You can compare the different versions on their website.

    Awasu的免费版本是有限功能版本,提供基本的RSS阅读器功能。 如果您需要更多功能,高级版为35美元,专业版为95美元。 您可以在他们的网站上比较不同的版本

    11_awasu

    新闻模糊 (NewsBlur)

    NewsBlur is a web-based RSS reader, also available for the iPhone, iPad, and Android devices. It provides real-time RSS, pushing articles directly to you. You can read the content from the original site, the way it was meant to be read on the site, and share items with friends and family. NewsBlur also allows you to hide items you don’t want to view and highlight items you want to read.

    NewsBlur是基于Web的RSS阅读器,也可用于iPhone,iPad和Android设备。 它提供实时RSS,将文章直接发送给您。 您可以阅读原始网站上的内容,在网站上阅读内容的方式,以及与朋友和家人共享内容。 NewsBlur还允许您隐藏不想查看的项目并突出显示要阅读的项目。

    12_newsblur

    饲料助推器 (FeedBooster)

    FeedBooster is a free, web-based RSS reader that allows you to customize your reading experience and read and access feeds from your favorite websites and blogs that are most relevant to you. Use FeedBooster’s multi-dimensional search technology and filtering options to find items that you want to read.

    FeedBooster是基于网络的免费RSS阅读器,可让您自定义阅读体验,并从与您最相关的最喜欢的网站和博客中读取和访问提要。 使用FeedBooster的多维搜索技术和过滤选项来查找您要阅读的项目。

    FeedBooster allows you to add single feeds using source URLs and import all your RSS feeds from your Google Reader account.

    FeedBooster允许您使用源URL添加单个提要,并从您的Google Reader帐户导入所有RSS提要。

    13_feedbooster

    In addition to the RSS applications and websites listed here, we’ve also shown you how to display RSS feeds on your Windows desktop and how to follow a twitter feed in an RSS reader.

    除了此处列出的RSS应用程序和网站之外,我们还向您展示了如何在Windows桌面上显示RSS提要以及如何在RSS阅读器中关注Twitter提要

    Let us know if you’ve found a useful RSS reader application.

    让我们知道您是否找到了有用的RSS阅读器应用程序。

    翻译自: https://www.howtogeek.com/128487/the-best-free-rss-readers-for-keeping-up-with-your-favorite-websites/

    rss阅读器

    展开全文
  • 开源rss阅读器 v1.0

    2008-10-13 14:16:55
    开源 rss 阅读器开源 rss 阅读器开源 rss 阅读器
  • RSS阅读器 一个用于学校项目的简单 RSS 阅读器 Android 应用程序。
  • 自制Android RSS阅读器

    千次阅读 2017-06-02 23:52:46
    介绍了在开发RSS阅读器过程中的一些问题。

    这个问题困扰我挺久了,android端找不到一款好的RSS阅读器。我就想简简单单打开自己订阅的RSS每天看一看,没有注册,没有广告,就简简单单的。终于抽了两天时间出来写了个BETA。

    所有代码都放在我的Github上了。

    记录一下开发过程中遇到的一些问题。

    1. RecyclerView处在ConstraintLayout中出现的视图问题

    视图的问题如图。

    这里写图片描述

    adapteronCreateViewHolder()方法中,就是按照

    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.rss_list_item, parent, false);

    这样来写的。子视图的高度也都是确定的。如果这么简单就好了。问题照旧。

    尝试了很久,结果症结出在ConstraintLayoutRecyclerView一起使用上。

    上图中是一个fragment,有问题的fragment的根布局如下:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/fragment_bg"
        android:orientation="vertical">
    
        <android.support.v7.widget.RecyclerView
            android:id="@+id/rssRecyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        </android.support.v7.widget.RecyclerView>
    
    </android.support.constraint.ConstraintLayout>

    因为其他很多地方我都排查过了,所以对这个布局心生怀疑。

    我就把ConstraintLayout改成了FrameLayout,修改后的布局如下:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/fragment_bg"
        android:orientation="vertical">
    
        <android.support.v7.widget.RecyclerView
            android:id="@+id/rssRecyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        </android.support.v7.widget.RecyclerView>
    
    </android.support.constraint.ConstraintLayout>

    问题解决。

    2. 对RSS的XML文档的解析

    读取RSS中的内容其实就是解析一下XML文档。

    RSS的格式有个大概的标准,大致就是<channel>或者<rss>开头,然后是最外层的<title>, <link>, <description>的内容;紧接着就是<item>,代表每个子条目;每个<item>标签中也有相应的<title>, <link>, <description>节点。

    比较了feed.yeeyan.org/selectzhihu.com/rsshttp://www.read.org.cn/feed以及feed.androidauthority.com四个RSS,发现有三个问题:

    • <link>标签的内容,可能包含在<link>的属性中,如:<link href="http://...">
    • <description>标签有时候又叫<subtitle>
    • <item>标签有时候又叫<entry>

    因此在解析的时候,将这三个问题考虑进去,大部分的RSS应该都能解析了。

    简单的应用,使用sqlite作为本地存储,如果重复添加已有的RSS,就相当于刷新RSS的内容。

    目前还只有简单的添加RSS,浏览其内容的功能。

    陆续还会抽空把刷新,进度条和 RSS补全库等功能加上。

    代码希望对大家有用。有需要改进的地方,可以邮件我或者ISSUE。

    上个截图:

    这里写图片描述

    展开全文
  • Feedit-RSS阅读器 使用SwiftUI和核心数据的RSS阅读器 Feedit:RSS Reader是一款适用于iOS的最小型,精悍的RSS阅读器,具有使用SwiftUI和CoreData的功能和简化的设计 去做: iCloud支持
  • 本文档介绍了关于在线RSS阅读器的制作教程,帮助初学者建立自己的在线RSS阅读器
  • RSS_阅读器 RSS 阅读器是一款 Android 应用程序,可聚合网站内容并将其作为移动优化体验提供。它使浏览速度非常快,并且 RSS Feed 的内容阅读起来非常有趣。 该应用程序背后的想法是满足印度市场的需求,并创建更多...
  • 嵌入在Visual Studio Code中的RSS阅读器 介绍 VSCode-RSS是Visual Studio Code扩展,提供了嵌入式RSS阅读器。 有了它,经过长时间的编码,您可以在VSCode中自由阅读新闻和博客。 和 ,可让您在设备之间同步RSS。 ...
  • Android开发RSS阅读器

    千次阅读 2019-01-25 09:19:28
    Android开发RSS阅读器
                   

            RSS阅读器的Logo:

                                           

            RSS阅读器是一种软件或是说一个程序,这种软件可以自由读取RSS和Atom两种规范格式的文档,且这种读取RSS和Atom文档的软件有多个版本,由不同的人或公司开发,有着不同的名字。如目前流行的有:RSSReader、Feeddemon、SharpReader等。这些软件能够实现大致相同的功能,其实质都是为了方便地读取RSS和Atom文档。Really Simple Syndication “聚合真的很简单”就是RSS的英文原意。把新闻标题、摘要(Feed)、内容按照用户的要求,“送”到用户的桌面就是RSS的目的。


    注:下面给出的这个例子来自Google Android SDK开发,经过阅读,理解,并加上自己的和汇总写下这篇文章。


    首先,给出实现本实例的截图,我用这个阅读器打开了我的博客。

    1.


    这是程序运行的主界面,实现这个界面的代码如下:

    package irdc.ex08_13;/* import相关class */import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class EX08_13 extends Activity/* 变量声明 */  private Button mButton;  private EditText mEditText;    @Override  public void onCreate(Bundle savedInstanceState)  {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    /* 初始化对象 */    mEditText=(EditText) findViewById(R.id.myEdit);    mButton=(Button) findViewById(R.id.myButton);    /* 设定Button的onClick事件 */    mButton.setOnClickListener(new Button.OnClickListener()     {       @Override       public void onClick(View v)       {         String path=mEditText.getText().toString();        if(path.equals(""))        {          showDialog("网址不可为空白!");        }        else        {          /* new一个Intent对象,并指定class */          Intent intent = new Intent();          intent.setClass(EX08_13.this,EX08_13_1.class);                    /* new一个Bundle对象,并将要传递的数据传入 */          Bundle bundle = new Bundle();          bundle.putString("path",path);          /* 将Bundle对象assign给Intent */          intent.putExtras(bundle);          /* 调用Activity EX08_13_1 */          startActivityForResult(intent,0);        }      }     });  }    /* 重写 onActivityResult()*/  @Override  protected void onActivityResult(int requestCode,int resultCode,                                  Intent data)  {    switch (resultCode)    {       /*       * 当由主程序唤起的EX08_13_1发生运行错误时,会返回resultCode=99的信息,主程序       * 在接收到信息时,将以Dialog显示错误信息       */      case 99:        /* 回传错误时以Dialog显示 */        Bundle bunde = data.getExtras();        String error = bunde.getString("error");        showDialog(error);        break;             default:         break;      }    }     /* 显示Dialog的method */  private void showDialog(String mess){    new AlertDialog.Builder(EX08_13.this).setTitle("Message")    .setMessage(mess)    .setNegativeButton("确定", new DialogInterface.OnClickListener()    {      public void onClick(DialogInterface dialog, int which)      {                }    })    .show();  }}

    2.点击打开按钮,进入文档界面,实现的截图如下:



    说明:

    * 这是一个ListActivity,主要用来显示订阅的RSS内容列表
     * 当程序被主程序唤醒时,会先从Bundle对象中取得主程序传入的RSS网址,再调用自定义的getRss()方法
     * 对RSS网址发出request,并解析由服务器返回的XML格式的文件。
     * getRss()是自定义的方法,它除了会将RSS的request传送出去,在接收到服务器response时,会以
     * SAXParser作为解析XML的主要工具,利用自定义的MyHandler类来取得XML内的相关信息。
     * 调用getRss()时,会返回一个List<News>,内存的每一笔数据就是一个News对象,也就是所有新闻的列表;
     * 在取得List<News>之后,将List传入自定义的MyAdapter对象,再使用setListAdapter()将数据设置给ListView。
     * 程序中重写ListActivity的onListItemClick(),当ListView中的任一个item被单击时,onClick()会被触发,
     * 此时会先取得单击的News对象,并将相关信息传入Bundle中,再将Bundle对象assign给Intent,并唤起EX08_13_2这个
     * Activity。
     * 当程序发生错误时,会返回resultCode=99的信息给上一个Activity


    下面给出实现代码:

    public class EX08_13_1 extends ListActivity/* 变量声明 */  private TextView mText;  private String title=""private List<News> li=new ArrayList<News>();    @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    /* 设定layout为newslist.xml */    setContentView(R.layout.newslist);        mText=(TextView) findViewById(R.id.myText);    /* 取得Intent中的Bundle对象 */    Intent intent=this.getIntent();    Bundle bunde = intent.getExtras();    /* 取得Bundle对象中的数据 */    String path = bunde.getString("path");    /* 调用getRss()取得解析后的List */    li=getRss(path);    mText.setText(title);    /* 设定自定义的MyAdapter */    setListAdapter(new MyAdapter(this,li));  }    /* 设定ListItem被按下时要做的动作 */  @Override  protected void onListItemClick(ListView l,View v,int position,                                 long id)  {    /* 取得News对象 */    News ns=(News)li.get(position);    /* new一个Intent对象,并指定class */    Intent intent = new Intent();    intent.setClass(EX08_13_1.this,EX08_13_2.class);    /* new一个Bundle对象,并将要传递的数据传入 */    Bundle bundle = new Bundle();    bundle.putString("title",ns.getTitle());    bundle.putString("desc",ns.getDesc());    bundle.putString("link",ns.getLink());    /* 将Bundle对象assign给Intent */    intent.putExtras(bundle);    /* 调用Activity EX08_13_2 */    startActivity(intent);  }    /* 剖析XML的method */  private List<News> getRss(String path)  {    List<News> data=new ArrayList<News>();    URL url = null;         try    {        url = new URL(path);      /* 产生SAXParser对象 */       SAXParserFactory spf = SAXParserFactory.newInstance();       SAXParser sp = spf.newSAXParser();       /* 产生XMLReader对象 */       XMLReader xr = sp.getXMLReader();       /* 设定自定义的MyHandler给XMLReader */       MyHandler myExampleHandler = new MyHandler();       xr.setContentHandler(myExampleHandler);           /* 解析XML */      xr.parse(new InputSource(url.openStream()));      /* 取得RSS标题与内容列表 */      data =myExampleHandler.getParsedData();       title=myExampleHandler.getRssTitle();    }    catch (Exception e)    {       /* 发生错误时回传result回上一个activity */      Intent intent=new Intent();      Bundle bundle = new Bundle();      bundle.putString("error",""+e);      intent.putExtras(bundle);      /* 错误的回传值设定为99 */      EX08_13_1.this.setResult(99, intent);      EX08_13_1.this.finish();    }    return data;  }}

    在上一个类中用到了Handler对象,下面给出这个类的介绍:


     * 自定义的Handler对象,用来解析XML文件,并取得文件中的相关信息
     * RSS返回的XML文件中,每一则新闻内容的起始为<item>,结束为</item>,格式如下:
     * 
     * <item>
     * <title>新闻标题</title>
     * <guid isPermaLink="false">ID</guid>
     * <link>新闻连接</link>
     * <description>新闻描述</description>
     * <pubDate>发布时间</pubDate>
     * </item>
     * 
     * MyHandler在解析上述XML文件内容的流程如下:
     * 1.运行startDocument(),生成一个List<News>,作为存放News对象之用
     * 2.当程序解析到Element的起始时,会运行startElement(),程序依据Element名称的不同,将其所对应的boolean
     * 参数设置为true。
     * 3.当程序解析到文件中的字符时(character),会运行characters()这个方法,将字符附加到(append)StringBuffer中
     * 4.当程序解析到Element的结尾时会运行endElement(),程序依据Element名称的不同,将由StringBuffer转换成的字符串,
     * 以setXXX()的方式把该属性写入News对象中,并把相对应的boolean变量设置为false。


    实现代码如下:

    public class MyHandler extends DefaultHandler{   /* 变量声明 */  private boolean in_item = false;   //News对象的四个属性标记  private boolean in_title = falseprivate boolean in_link = falseprivate boolean in_desc = falseprivate boolean in_date = false;    private boolean in_mainTitle = falseprivate List<News> li;  private News news;  private String title=""private StringBuffer buf=new StringBuffer();  /* 将转换成List<News>的XML数据回传 */  public List<News> getParsedData()  {     return li;   }  /* 将解析出的RSS title回传 */  public String getRssTitle()  {     return title;   }  /* XML文件开始解析时调用此method */  @Override   public void startDocument() throws SAXException  {     li = new ArrayList<News>();   }   /* XML文件结束解析时调用此method */  @Override   public void endDocument() throws SAXException  {  }   /* 解析到Element的开头时调用此method */  @Override   public void startElement(String namespaceURI, String localName,                String qName, Attributes atts) throws SAXException  {     if (localName.equals("item"))    {       this.in_item = true;      /* 解析到item的开头时new一个News对象 */      news=new News();    }    else if (localName.equals("title"))    {       if(this.in_item)      {        this.in_title = true;      }      else      {        this.in_mainTitle = true;      }    }    else if (localName.equals("link"))    {       if(this.in_item)      {        this.in_link = true;      }    }    else if (localName.equals("description"))    {       if(this.in_item)      {        this.in_desc = true;      }    }    else if (localName.equals("pubDate"))    {       if(this.in_item)      {        this.in_date = true;      }    }   }  /* 解析到Element的结尾时调用此method */  @Override   public void endElement(String namespaceURI, String localName,                         String qName) throws SAXException  {     if (localName.equals("item"))    {       this.in_item = false;      /* 解析到item的结尾时将News对象写入List中 */      li.add(news);    }    else if (localName.equals("title"))    {       if(this.in_item)      {        /* 设定News对象的title */        news.setTitle(buf.toString().trim());        buf.setLength(0);        this.in_title = false;      }      else      {        /* 设定RSS的title */        title=buf.toString().trim();        buf.setLength(0);        this.in_mainTitle = false;      }    }    else if (localName.equals("link"))    {       if(this.in_item)      {        /* 设定News对象的link */        news.setLink(buf.toString().trim());        buf.setLength(0);        this.in_link = false;      }    }    else if (localName.equals("description"))    {       if(in_item)      {        /* 设定News对象的description */        news.setDesc(buf.toString().trim());        buf.setLength(0);        this.in_desc = false;      }    }    else if (localName.equals("pubDate"))    {       if(in_item)      {        /* 设定News对象的pubDate */        news.setDate(buf.toString().trim());        buf.setLength(0);        this.in_date = false;      }    }   }   /* 取得Element的开头结尾中间夹的字符串 */  @Override   public void characters(char ch[], int start, int length)  {     if(this.in_item||this.in_mainTitle)    {      /* 将char[]加入StringBuffer */      buf.append(ch,start,length);    }  } }

    在前两个类中都用到了News这个类对象,这是对阅读文档对象的定义,代码文件如下:

    * 这是一个JavaBean的类,用来存放每一篇新闻的详细信息。简单的说,每一个News对象就代表了一则新闻,News对象中的
     *定义了的四个属性
     *1.新闻的标题_title
     *2.新闻的描述_desc
     *3.网站的连接_link
     *4.发布时间_date


    public class News{   /* News的四个变数 */  private String _title=""private String _link=""private String _desc=""private String _date="";    public String getTitle()  {     return _title;   }   public String getLink()  {     return _link;   }  public String getDesc()  {     return _desc;   }   public String getDate()  {     return _date;   }  public void setTitle(String title)  {     _title=title;   }   public void setLink(String link)  {     _link=link;   }  public void setDesc(String desc)  {     _desc=desc;   }   public void setDate(String date)  {     _date=date;   }}

    第二个文件的主布局是一个ListView用来显示可阅读文档,下面给出提供数据的Adapter文件:

    package irdc.ex08_13;/* import相关class */import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;/* 自定义的Adapter,继承android.widget.BaseAdapter */public class MyAdapter extends BaseAdapter/* 变量声明  */  private LayoutInflater mInflater;  private List<News> items;  /* MyAdapter的建构子,传入两个参数  */    public MyAdapter(Context context,List<News> it)  {    /* 参数初始化 */    mInflater = LayoutInflater.from(context);    items = it;  }    /* 因继承BaseAdapter,需重写以下method */  @Override  public int getCount()  {    return items.size();  }  @Override  public Object getItem(int position)  {    return items.get(position);  }    @Override  public long getItemId(int position)  {    return position;  }    @Override  public View getView(int position,View convertView,ViewGroup par)  {    ViewHolder holder;        if(convertView == null)    {      /* 使用自定义的news_row作为Layout */      convertView = mInflater.inflate(R.layout.news_row, null);      /* 初始化holder的text与icon */      holder = new ViewHolder();      holder.text = (TextView) convertView.findViewById(R.id.text);            convertView.setTag(holder);    }    else    {      holder = (ViewHolder) convertView.getTag();    }    News tmpN=(News)items.get(position);    holder.text.setText(tmpN.getTitle());        return convertView;  }    /* class ViewHolder */  private class ViewHolder  {    TextView text;  }}

    之后,当我们点击一条信息之后,就会进入下一界面,实现的截图如下:



    我们只需要点击其中的链接,就可以打开相应的网页文件,截图如下:


    实现的代码如下:

    注意,打开网页是调用系统自带的浏览器:

    package irdc.ex08_13;/* import相关class */import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.text.util.Linkify;import android.widget.TextView;public class EX08_13_2 extends Activity/* 变量声明 */  private TextView mTitle;  private TextView mDesc;  private TextView mLink;    @Override  public void onCreate(Bundle savedInstanceState)  {    super.onCreate(savedInstanceState);    /* 设定layout为newscontent.xml */    setContentView(R.layout.newscontent);    /* 初始化对象 */    mTitle=(TextView) findViewById(R.id.myTitle);    mDesc=(TextView) findViewById(R.id.myDesc);    mLink=(TextView) findViewById(R.id.myLink);    /* 取得Intent中的Bundle对象 */    Intent intent=this.getIntent();    Bundle bunde = intent.getExtras();    /* 取得Bundle对象中的数据 */    mTitle.setText(bunde.getString("title"));    mDesc.setText(bunde.getString("desc")+"....");    mLink.setText(bunde.getString("link"));    /* 设定mLink为网页连结 */    Linkify.addLinks(mLink,Linkify.WEB_URLS);  }}


               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • RSS阅读器Reeder简单使用攻略

    千次阅读 2020-06-11 15:55:37
    RSS阅读器就是最好的收集整合信息的工具,有了它我们可以实现有效信息集合,减少登录各个网页需耗费的时间,提高浏览速度和精准度。 Reeder是我至今用过的最令人满意的RSS阅读工具,它不仅可以做为RSS工具,还可以...
  • 适用于Android的RSS阅读器 这是一个项目,供联系人查看是否可以在不到10小时的时间内构建基本的RSS阅读器。 ###屏幕截图
  • c#版 rss阅读器

    2009-04-17 15:35:18
    使用c#编写的rss阅读器,自己长用这个看新闻。
  • Android开发实例:rss阅读器 源码
  • RSS 阅读器及源

    2019-07-19 13:49:00
    参考资料 万物皆可 RSS 文档 ...1. RSS 阅读器及源 2. 我有特别的 RSS 使用技巧 3. Fatecore Studio第三弹:irreader 4. 安装Chrome插件(Tampermonkey,RSSHelper),可发现网页使用RSS源 5. 打造属...
  • JavaScript编写的RSS阅读器,可以输入要阅读的RSS地址,自动套用CSS样式,对于想学习RSS的读者来说,是个宝贝

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,901
精华内容 9,160
关键字:

rss阅读器