Programmēšana

Java padoms: iestatiet RSS plūsmu savai Android lietojumprogrammai

Izmantojiet Java SAXParser, lai izgūtu un parsētu Android RSS plūsmu. Šis Java padoms ir paredzēts izstrādātājiem, kas jauni Android, un ietver instrukcijas Android izstrādes vides iestatīšanai un īsu lietojumprogrammu apmācību.

RSS plūsma ir XML formāta fails, ko izmanto periodiski atjauninātas sindicētās informācijas publicēšanai. RSS plūsmu var parsēt (tas ir, lasīt un formatēt), izmantojot XML parsētāju. Ar Java saderīgi parsētāji, ko izmanto XML parsēšanai Android ierīcēs, ietver:

  • android.content.res.XmlResourceParser ir vilkšanas parsētājs
  • Vienkārša API XML (SAX) ir atrodama org.xml.sax iepakojums
  • Android ROME Feed Reader ir Google RSS plūsmas lasītājs Android ierīcēm
  • Android plūsmas lasītājs ir vēl viens Google RSS / Atom plūsmas lasītājs Android ierīcēm
  • Android-rss ir viegla Android bibliotēka RSS 2.0 plūsmām

Šis Java padoms ir pakāpenisks ievads javax.xml.parsers.SAXParser parsēt RSS plūsmu XML formātā. SAXParser ir standarta izvēle, jo tā ir iekļauta Android API Android SDK. Mēs izveidosim izstrādes vidi, izveidosim vienkāršu Android lietotni un plūsmu demonstrēšanas nolūkos un pēc tam izmantosim SAXParser, lai formatētu Android plūsmu. Lai gan tiek pieņemts, ka ir zināmas zināšanas par Java lietojumprogrammu izstrādi, šis padoms ir piemērots izstrādātājiem, kas ir jauni Java mobilās izstrādes jomā.

Vides uzstādīšana

Veiciet šādas darbības, lai izveidotu šī projekta izstrādes vidi:

  1. Instalējiet Eclipse IDE.
  2. Eclipse instalējiet Android izstrādes rīku (ADT) spraudni. ADT spraudnis Eclipse nodrošina paplašinājumu komplektu, lai izstrādātu Android lietojumprogrammas Eclipse.
  3. Instalējiet Android 2.3 SDK platformu. Android SDK nodrošina rīkus Android lietojumprogrammu izstrādei.
  4. Izveidojiet Android virtuālo ierīci un iestatiet mērķa vidi kā Android 2.3.3. API 10. līmenis.

Android projekts

Mēs izveidosim Android projekta piemēru, lai saņemtu RSS plūsmu.

  1. Eclipse IDE atlasiet Fails -> jauns.
  2. Sadaļā Jauna atlase Android -> Android projekts, pēc tam noklikšķiniet uz Tālāk.
  3. Logā Jauns Android projekts norādiet projekta nosaukumu (RSSFeed).
  4. Savam būvēšanas mērķim atlasiet Android Platform 2.3 API 10.
  5. Rekvizītos norādiet lietojumprogrammas nosaukumu (atkal RSSFeed) un pakotnes nosaukumu (android.rss).
  6. Atzīmējiet izvēles rūtiņu: Izveidot darbību un norādiet Aktivitāte klase (RssFeed).
  7. Norādiet minimālo SDK versiju kā 10 un noklikšķiniet uz Tālāk; vai, ja esat izvēlējies platformas 3.0 API 11 versiju, norādiet minimālo SDK versiju kā 11.

Ņemiet vērā, ka aktivitāte (6. darbība) apzīmē lietotāja mijiedarbību. Klase, kas paplašina Aktivitāte klase izveido logu lietotāja interfeisam.

Iegūtais Android projekts sastāv no šādiem failiem:

  1. Aktivitātes klase (RSSFeed), kas paplašinās Aktivitāte.
  2. A res / layout / main.xml fails, kas norāda Android lietotāja saskarnes komponentu izkārtojumu.
  3. An AndroidManifest.xml fails, kas satur lietojumprogrammas konfigurāciju, piemēram, pakotnes nosaukumu, galveno darbību, kas jāuzsāk, palaižot Android lietojumprogrammu, lietojumprogrammas komponentus, procesus, atļaujas un minimālo API līmeni.

In res / layout / main.xml, norādiet Android lietotāja saskarnes komponentu izkārtojumu. Izveidojiet a LinearLayout un iestatiet android: orientācija kā "vertikāli"Mūsu mērķis ir parādīt RSS plūsmu kā īsziņu, tāpēc pievienojiet Teksta skats RSS plūsmas nosaukuma elements un norādiet android: teksts kā Google RSS plūsmu. Pievienojiet a Teksta skats elements ar ID "rss", lai parādītu RSS plūsmu. 1. sarakstā tiek parādīts iegūtais main.xml.

Saraksts 1. Norādot Android lietotāja saskarnes komponentu izkārtojumu

In AndroidManifest.xml, norādiet Aktivitāte sākt kā RSSFeed. Lai piekļūtu RSS plūsmai no tīmekļa Android ierīcē, mums ir jāiespējo android.permission.INTERNET atļauja AndroidManifest.xml, kas ļauj lietojumprogrammām atvērt tīkla kontaktligzdas. Pievienojiet šo izmantošanas atļauja elements:

Norādiet minimālo Android versiju, izmantojot lieto-sdk elements. The RSSFeed darbība nodomu filtrs, un darbība ir norādīti ar aktivitātes elementu un apakšelementiem, kā parādīts 2. sarakstā.

Saraksts 2. AndroidManifest.xml

Parsējiet Android RSS plūsmu

Tālāk mēs izmantosim javax.xml.parsers.SAXParser parsēt mūsu RSS plūsmu. Vispirms importējiet šādas klases:

  • javax.xml.parsers.SAXParser
  • javax.xml.parsers.SAXParserFactory
  • org.xml.sax.InputSource
  • org.xml.sax.XMLReader
  • org.xml.sax.helpers.DefaultHandler

Atgādināt, ka RSSFeed klase pagarinās Aktivitāte. Iekš RSSFeed klasē, definējiet mainīgo RSS plūsmas izvadei:

Virkne rssResult = "";

The onCreate (pakete saglabātaInstanceState) metode tiek izmantota, kad tiek uzsākta darbība. Iekš onCreate metodi, iestatiet lietotāja saskarni, izmantojot setContentView metode un izkārtojuma resurss:

setContentView (R.layout.main);

Tālāk mēs izmantojam findViewById metode, lai definētu Android logrīku Teksta skats objekts main.xml:

TextView rss = (TextView) findViewById (R.id.rss);

Tagad izmantojiet konstruktoru URL lai norādītu RSS plūsmas URL:

URL rssUrl = jauns URL ("// www.javaworld.com/index.xml");

Ņemiet vērā, ka RSS plūsma sastāv no plūsmas vienumu elementi. Katrs sastāv no nosaukums, apraksts, saite, radītājs, un datums apakšelementi.

Izveidojiet SAXParser

Izveidojiet a SAXParserFactory objektu, izmantojot statisko metodi newInstance:

SAXParserFactory rūpnīca = SAXParserFactory.newInstance ();

Izveidojiet a SAXParser izmantojot newSAXParser metode:

SAXParser saxParser = factory.newSAXParser ();

Iegūstiet XMLReader no SAXParser izmantojot getXMLReader metode:

XMLReader xmlReader = saxParser.getXMLReader ();

Apstrāde SAX2 pasākumus

Tālāk mums jāizveido DefaultHandler rīkoties ar SAX2 notikumiem. SAX2 notikumi ir XML parsēšanas notikumi, piemēram, dokumenta / elementa sākums un beigas, kā arī rakstzīmju dati. Priekš DefaultHandler, vispirms izveidojiet privātu klasi RSSHandlers kas paplašina DefaultHandler klasē. Definējiet pasākumu apstrādes metožu ieviešanu startElement un rakstzīmes. Katrs plūsmas vienums ir ietverts elements. Iekš startElement metodi, ja localName ir "prece" pievienot localName uz rssRezultāta virkne:

rssResult = rssResult + localName + ":";

Iekš rakstzīmes metodi pievienojiet rakstzīmju datus rssRezultāta virkne. Izmantojiet aizstāt visu metode, kā noņemt visas papildu vietas RSS plūsmā:

Virknes cdata = jauna virkne (ch, sākums, garums); ja (vienums == patiess) rssResult = rssResult + (cdata.trim ()). aizstātVisi ("\ s +", "") + "\ t";

Iekš onCreate metodi, izveidojiet RSSHandlers objekts:

RSSHandler rssHandler = jauns RSSHandler ();

Iestatiet RSSHandlers kā satura apstrādātājs XMLReader objektu, izmantojot setContentHandler metode:

xmlReader.setContentHandler (rssHandler);

Izveidojiet InputSource objekts no RSS plūsmas URL. Atveriet URL straumi, izmantojot openStream metode:

InputSource inputSource = jauns InputSource (rssUrl.openStream ());

Parsēt InputSource izmantojot parsēt metode XMLReader objekts:

xmlReader.parse (inputSource);

Iestatiet rssRezultāta virkne ģenerēts no RSS plūsmas Teksta skats elements:

rss.setText (rssResult);

Un ar to mēs esam galā. Pilnīgs Aktivitāte klasē RSSFeed ir parādīts 3. sarakstā.

Saraksts 3. RSSFeed

pakete android.rss; importēt android.app.Activity; importēt android.os.Bundle; importēt java.util.Stack; importēt android.widget.TextView; importēt javax.xml.parsers.SAXParser; importēt javax.xml.parsers.SAXParserFactory; importēt java.util.StringTokenizer; importēt java.net.MalformedURLException; importēt java.net.URL; importēt org.xml.sax.InputSource; importēt org.xml.sax.XMLReader; importēt java.io.IOException; importēt org.xml.sax.SAXException; importēt javax.xml.parsers.ParserConfigurationException; importēt org.xml.sax.Attributes; importēt org.xml.sax.SAXException; importēt org.xml.sax.helpers.DefaultHandler; publiskā klase RSSFeed paplašina darbību {/ **, ko izsauc, kad darbība tiek pirmo reizi izveidota. * / Virkne rssResult = ""; būla elements = false; @Orride public void onCreate (Pakete savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.main); TextView rss = (TextView) findViewById (R.id.rss); mēģiniet {URL rssUrl = new URL ("// www.javaworld.com/index.xml"); SAXParserFactory rūpnīca = SAXParserFactory.newInstance (); SAXParser saxParser = factory.newSAXParser (); XMLReader xmlReader = saxParser.getXMLReader (); RSSHandler rssHandler = jauns RSSHandler (); xmlReader.setContentHandler (rssHandler); InputSource inputSource = jauns InputSource (rssUrl.openStream ()); xmlReader.parse (inputSource); } catch (IOException e) {rss.setText (e.getMessage ()); } catch (SAXException e) {rss.setText (e.getMessage ()); } catch (ParserConfigurationException e) {rss.setText (e.getMessage ()); } rss.setText (rssResult); } / ** public String removeSpaces (String s) {StringTokenizer st = new StringTokenizer (s, "", false); Stīga; while (st.hasMoreElements ()) t + = st.nextElement (); atgriešanās t; } * / privātā klase RSSHandler paplašina DefaultHandler {public void startElement (String uri, String localName, String qName, Atribūti attrs) met SAXException {if (localName.equals ("item")) item = true; if (! localName.equals ("item") && item == true) rssResult = rssResult + localName + ":"; } public void endElement (String namespaceURI, String localName, String qName) izmet SAXException {} public void rakstzīmes (char [] ch, int start, int length) throws SAXException {String cdata = new String (ch, start, length); ja (vienums == patiess) rssResult = rssResult + (cdata.trim ()). aizstātVisi ("\ s +", "") + "\ t"; }}}

Android lietojumprogrammas palaišana

Tagad redzēsim, kas notiek, palaižot Android lietojumprogrammu. Vispirms ar peles labo pogu noklikšķiniet uz programmas RSSFeed savā Eclipse IDE un atlasiet Palaidiet kā -> Android lietojumprogrammu.

Jūsu rezultāti nedaudz mainīsies atkarībā no konfigurācijas: ja esat konfigurējis Android Platform 11 un API 3.0, tiks palaista platforma 11 AVD. Ja esat izvēlējies Android platformu 10 un API 2.3, tiks startēta platforma 10 AVD. Katrā ziņā lietojumprogramma RSSFeed ir jāparāda kā izvietota pareizajā Android ierīcē.

Tagad noklikšķiniet uz lietojumprogrammas RSSFeed, lai parādītu RSS plūsmu, kurai vajadzētu parādīties, kā parādīts 1. attēlā.

Noslēgumā

Šajā Java padomā jūs uzzinājāt, kā Android ierīcē iestatīt RSS plūsmu, izmantojot SAXParser, kas ir komplektā ar Android SDK. Varat modificēt šo lietojumprogrammu jebkurai RSS plūsmai, mainot RSS URL. Mēs arī veicām vienkāršu uzdevumu, formatējot RSS plūsmu, noņemot papildu atstarpes starp uzskaitītajiem rakstiem.

Deepak Vohra ir Sun sertificēts Java programmētājs, Sun sertificēts tīmekļa komponentu izstrādātājs un iepriekš ir publicējis rakstus vietnēs XML Journal, Java Developer Journal, WebLogic Journal un Java.net.

Uzziniet vairāk par šo tēmu

Uzziniet vairāk par Android.

  • Lejupielādējiet Android SDK.
  • Lejupielādējiet Android izstrādes rīkus (ADT).
  • Lejupielādējiet JDK
  • Lejupielādējiet jaunāko Eclipse for Java EE versiju.

Vairāk no JavaWorld

  • Pārbaudiet JavaWorld mobilo Java pētījumu zonu, lai iegūtu vairāk līdzīgu rakstu.
  • Skatiet JavaWorld vietņu karti, lai iegūtu pilnu sarakstu ar pētniecības centriem, kas koncentrējas uz klienta puses, uzņēmuma un Java pamata izstrādes rīkiem un tēmām.
  • JavaWorld Java Technology Insider ir podcast sērija, kas ļauj jums mācīties no Java tehnoloģiju ekspertiem ceļā uz darbu.

Šo stāstu “Java padoms: izveidojiet RSS plūsmu savai Android lietojumprogrammai” sākotnēji publicēja JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found