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:
- Instalējiet Eclipse IDE.
- 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.
- Instalējiet Android 2.3 SDK platformu. Android SDK nodrošina rīkus Android lietojumprogrammu izstrādei.
- 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.
- Eclipse IDE atlasiet Fails -> jauns.
- Sadaļā Jauna atlase Android -> Android projekts, pēc tam noklikšķiniet uz Tālāk.
- Logā Jauns Android projekts norādiet projekta nosaukumu (RSSFeed).
- Savam būvēšanas mērķim atlasiet Android Platform 2.3 API 10.
- Rekvizītos norādiet lietojumprogrammas nosaukumu (atkal RSSFeed) un pakotnes nosaukumu (android.rss).
- Atzīmējiet izvēles rūtiņu: Izveidot darbību un norādiet
Aktivitāte
klase (RssFeed
). - 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:
- Aktivitātes klase (
RSSFeed
), kas paplašināsAktivitāte
. - A res / layout / main.xml fails, kas norāda Android lietotāja saskarnes komponentu izkārtojumu.
- 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.