Rss reader android java

Android — RSS Reader

RSS stands for Really Simple Syndication. RSS is an easy way to share your website updates and content with your users so that users might not have to visit your site daily for any kind of updates.

RSS Example

RSS is a document that is created by the website with .xml extension. You can easily parse this document and show it to the user in your application. An RSS document looks like this.

RSS Elements

An RSS document such as above has the following elements.

This element is used to describe the RSS feed

Defines the title of the channel

Defines the hyper link to the channel

Describes the channel

Parsing RSS

Parsing an RSS document is more like parsing XML. So now lets see how to parse an XML document.

For this, We will create XMLPullParser object , but in order to create that we will first create XmlPullParserFactory object and then call its newPullParser() method to create XMLPullParser. Its syntax is given below −

The next step involves specifying the file for XmlPullParser that contains XML. It could be a file or could be a Stream. In our case it is a stream.Its syntax is given below −

The last step is to parse the XML. An XML file consist of events , Name , Text , AttributesValue e.t.c. So XMLPullParser has a separate function for parsing each of the component of XML file. Its syntax is given below −

The method getEventType returns the type of event that happens. e.g: Document start, tag start e.t.c. The method getName returns the name of the tag and since we are only interested in temperature, so we just check in conditional statement that if we got a temperature tag, we call the method getAttributeValue to return us the value of temperature tag.

Apart from the these methods, there are other methods provided by this class for better parsing XML files. These methods are listed below −

Sr.No Component & description
1

This method just Returns the number of attributes of the current start tag.

This method returns the name of the attribute specified by the index value.

This method returns the Returns the current column number, starting from 0.

This method returns Returns the current depth of the element.

Returns the current line number, starting from 1.

This method returns the name space URI of the current element.

This method returns the prefix of the current element.

This method returns the name of the tag.

This method returns the text for that particular element.

This method checks whether the current TEXT event contains only white space characters.

Example

Here is an example demonstrating the use of XMLPullParser class. It creates a basic Parsing application that allows you to parse an RSS document present here at /android/sampleXML.xml and then show the result.

To experiment with this example, you can run this on an actual device or in an emulator.

Sr.No Method & description
1
Steps Description
1 You will use Android studio to create an Android application under a package com.example.sairamkrishna.myapplication.
2 Modify src/MainActivity.java file to add necessary code.
3 Modify the res/layout/activity_main to add respective XML components.
4 Create a new java file under src/HandleXML.java to fetch and parse XML data.
5 Create a new java file under src/second.java to display result of XML
5 Modify AndroidManifest.xml to add necessary internet permission.
6 Run the application and choose a running android device and install the application on it and verify the results.

Following is the content of the modified main activity file src/MainActivity.java.

Following is the content of the java file src/HandleXML.java.

Create a file and named as second.java file under directory java/second.java

Create a xml file at res/layout/second_activity.xml

Modify the content of res/layout/activity_main.xml to the following −

Modify the res/values/string.xml to the following

This is the default AndroidManifest.xml.

Let’s try to run your application. I assume you had created your AVD while doing environment setup. To run the app from Android studio, open one of your project’s activity files and click Run icon from the toolbar. Android studio installs the app on your AVD and starts it and if everything is fine with your setup and application, it will display following Emulator window −

Just press the Fetch Feed button to fetch RSS feed. After pressing, following screen would appear which would show the RSS data.

Источник

Rss reader android java

Пролог

Чтение RSS — одна из самых важных и широко используемых функций в мобильных приложениях, на веб сайтах.

Перед тем, как мы погрузимся в разработку RSS читалки, хотим сказать, что нельзя построить отличное здание на слабом фундаменте.

Поэтому сначала мы создадим очень простое приложение для изучения основ функции чтения RSS на Kotlin. В следующих статьях мы будем использовать MVVM для улучшения структуры кода и перепишим наш RSS Reader.

Во время нашего погружения в разработку, мы будем использовать несколько вспомогательных библиотек, таких как: CardView, RecyclerView, Glide, Jsoup.

Итак, давайте начнем разрабатывать. Возможно, Вам будет интересно, что мы собираемся разработать. Вот так будет выглядеть наше приложение.

Разработка RSS Reader

Итак, наш проект состоит из:

  • Активити MainActivity
  • Фрагмента под названием RSSFragment (тип фрагмента список — «Fragment (List)»);
  • Адаптера Recyclerview с названием MyItemRecylcerviewAdapter;
  • Модель с названием класса RSSItem для хранения определенных данных элемента RSS;
  • Класс парсера для разбора входящих потоков;
  • Класс AppGlideModule, необходимый для Glide.

Ниже приведен код для каждого из файлов, мы рассмотрим их один за другим.

MainActivity.kt

В методе onCreate вызываем RSSFragment.

Распределение кода по фрагментам.

Фрагменты — это легкие, повторно используемые компоненты пользовательского интерфейса, которые можно использовать в разработке пользовательского интерфейса в Android. Вызовы активити — тяжелый процесс для ОС Android по сравнению с фрагментом. ОС Android может отклонять действия, вызывающие запросы приложения.

Вы, должно быть, сталкивались с описанным выше в реальной жизни, когда ваше приложение перестает реагировать на сенсорные события на экране. Причем виновата здесь не только активити.

Согласно официальной документации Android:

Вы можете думать о фрагменте, как о модульном разделе действий, который имеет свой собственный жизненный цикл, получает свои собственные входные события и который вы можете добавлять или удалять во время выполнения действия (что-то вроде «вспомогательного действия», которое вы можно повторно использовать в различных действиях).

Поэтому мы будем использовать фрагменты в нашем приложении.

Изучив выше код, Вы обнаружите, что это очень просто. Никаких сложных задач не происходит.

В методе onActivityCreated мы вызываем AsyncTask, чтобы запросить данные RSS-канала из сети, чтобы поток пользовательского интерфейса оставался свободным для выполнения некоторых вещей, таких как показ анимации. Более конкретно, ниже представлен класс asynctask.

Ничего сложного здесь нет, мы просто делаем запрос на получение потока с заданного URL. Убедитесь, что вы предоставили необходимые разрешения в Android Manifest.xml для доступа в Интернет.

В приведенном выше коде мы получаем поток c сервера при переходе по данной ссылке RSS. Чтобы упростить понимание кода, мы здесь не игнорируем состояния сетевых ошибок.

Как только мы получаем поток ввода, мы передаем его нашему классу парсера

Наш парсер RSS основан на XMLPullparser в android.

Итак, теперь вызов RSSParser будет анализировать входной поток и помещать все элементы в ArrayList. Если мы сосредоточимся на методе синтаксического анализа, мы увидим, что XMLPullparser вызвал события для начального и конечного тегов XML, присутствующих в RSS-канале.

Наконец, вот файлы Gradle, которые показывают зависимости, используемые в нашем приложении. Ниже файл Gradle корневого уровня.

Файл Gradle

Улучшение кода с использованием MVVM будет объяснено в следующей статье нашего блога.

Источник

Android — RSS Reader

RSS означает действительно простую синдикацию. RSS — это простой способ поделиться обновлениями и контентом вашего сайта с вашими пользователями, чтобы пользователям не приходилось ежедневно посещать ваш сайт для каких-либо обновлений.

Пример RSS

RSS — это документ, созданный веб-сайтом с расширением .xml. Вы можете легко разобрать этот документ и показать его пользователю в вашем приложении. Документ RSS выглядит следующим образом.

RSS элементы

Документ RSS, такой как приведенный выше, имеет следующие элементы.

Этот элемент используется для описания канала RSS

Определяет заголовок канала

Определяет гиперссылку на канал

Этот элемент используется для описания канала RSS

Определяет заголовок канала

Определяет гиперссылку на канал

Парсинг RSS

Разбор документа RSS больше похож на разбор XML. Итак, теперь давайте посмотрим, как анализировать XML-документ.

Для этого мы создадим объект XMLPullParser, но для его создания мы сначала создадим объект XmlPullParserFactory, а затем вызовем его метод newPullParser () для создания XMLPullParser. Его синтаксис приведен ниже —

Следующий шаг включает указание файла для XmlPullParser, который содержит XML. Это может быть файл или поток. В нашем случае это поток. Его синтаксис приведен ниже —

Последний шаг — разобрать XML. XML-файл состоит из событий, Name, Text, AttributesValue и т. Д. Таким образом, XMLPullParser имеет отдельную функцию для анализа каждого компонента XML-файла. Его синтаксис приведен ниже —

Метод getEventType возвращает тип события, которое происходит. Например: начало документа, начало тега и т. д. Метод getName возвращает имя тега, и поскольку нас интересует только температура, поэтому мы просто проверяем в условном выражении, что если мы получили тег температуры, мы вызываем метод getAttributeValue, чтобы вернуть нам значение температурного тега.

Помимо этих методов, есть и другие методы, предоставляемые этим классом для лучшего анализа XML-файлов. Эти методы перечислены ниже —

Sr.No Компонент и описание
1

Этот метод просто возвращает количество атрибутов текущего начального тега.

getAttributeName (int index)

Этот метод возвращает имя атрибута, указанного значением индекса.

Этот метод возвращает Возвращает текущий номер столбца, начиная с 0.

Этот метод возвращает Возвращает текущую глубину элемента.

Возвращает текущий номер строки, начиная с 1.

Этот метод возвращает URI пространства имен текущего элемента.

Этот метод возвращает префикс текущего элемента.

Этот метод возвращает имя тега.

Этот метод возвращает текст для этого конкретного элемента.

Этот метод проверяет, содержит ли текущее событие TEXT только символы пробела.

Этот метод просто возвращает количество атрибутов текущего начального тега.

getAttributeName (int index)

Этот метод возвращает имя атрибута, указанного значением индекса.

Этот метод возвращает Возвращает текущий номер столбца, начиная с 0.

Этот метод возвращает Возвращает текущую глубину элемента.

Возвращает текущий номер строки, начиная с 1.

Этот метод возвращает URI пространства имен текущего элемента.

Этот метод возвращает префикс текущего элемента.

Этот метод возвращает имя тега.

Этот метод возвращает текст для этого конкретного элемента.

Этот метод проверяет, содержит ли текущее событие TEXT только символы пробела.

пример

Вот пример, демонстрирующий использование класса XMLPullParser. Он создает простое приложение для синтаксического анализа, которое позволяет вам проанализировать документ RSS, представленный здесь в /android/sampleXML.xml, и затем показать результат.

Чтобы поэкспериментировать с этим примером, вы можете запустить его на реальном устройстве или в эмуляторе.

Sr.No Метод и описание
1
меры Описание
1 Вы будете использовать Android studio для создания приложения Android в пакете com.example.sairamkrishna.myapplication.
2 Измените файл src / MainActivity.java, чтобы добавить необходимый код.
3 Измените res / layout / activity_main, чтобы добавить соответствующие компоненты XML.
4 Создайте новый файл Java в src / HandleXML.java, чтобы получить и проанализировать данные XML.
5 Создайте новый файл Java в src / second.java, чтобы отобразить результат XML
5 Измените AndroidManifest.xml, чтобы добавить необходимые интернет-разрешения.
6 Запустите приложение и выберите работающее устройство Android, установите на него приложение и проверьте результаты.

Ниже приводится содержимое измененного основного файла активности src / MainActivity.java .

Ниже приводится содержимое файла Java src / HandleXML.java .

Создайте файл и назовите его как файл second.java в каталоге java / second.java

Создайте XML-файл по адресу res / layout / second_activity.xml

Измените содержимое файла res / layout / activity_main.xml следующим образом:

Измените файл res / values ​​/ string.xml следующим образом

Это стандартный AndroidManifest.xml .

Давайте попробуем запустить ваше приложение. Я предполагаю, что вы создали свой AVD во время настройки среды. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок с панели инструментов. Android-студия устанавливает приложение на AVD и запускает его, и, если все в порядке с настройками и приложением, оно отобразится в следующем окне эмулятора —

Просто нажмите кнопку «Получить канал», чтобы получить канал RSS. После нажатия появится следующий экран, который покажет данные RSS.

Источник

Читайте также:  All about android 230
Оцените статью