Un lector de RSS sencillo para Blackberry - Jorge Urdaneta @jorgeu

1,452 views

Published on

Un lector de RSS sencillo para Blackberry - Jorge Urdaneta @jorgeu

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,452
On SlideShare
0
From Embeds
0
Number of Embeds
162
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Un lector de RSS sencillo para Blackberry - Jorge Urdaneta @jorgeu

  1. 1. Un lector de RSS sencillo para Blackberry OS 5
  2. 2. Contenido <ul><li>Introducción
  3. 3. Parser XML del RSS
  4. 4. Muestra de elementos en pantalla </li></ul>
  5. 5. Introducción <ul><li>Crear un lector del RSS del sitio http://refreshmaracaibo.org en smartphones Blackberry
  6. 6. Facilitar el acceso a las últimas noticias del Blog
  7. 7. Impulsar el “Branding” del evento
  8. 8. Ofrecer una aplicación de ejemplo para principiantes </li></ul>
  9. 9. Parser XML del RSS <ul><li>Noticias contenidas en <item> … </item>
  10. 10. Atributos a leer </li><ul><li><title> acá el título </title>
  11. 11. <content:encoded> contenido </content:encoded> </li></ul><li>SAX Parser </li><ul><li>Se procesan los tags a medida que se van leyendo
  12. 12. Ideal para XML que vienen de conexiones lentas
  13. 13. No se carga el documento en memoria como DOM
  14. 14. Se complica el procesamiento de tags en documentos XML complejos </li></ul><li>Dirección del RSS: http://refreshmaracaibo.com/feed/ </li></ul>
  15. 15. Parser XML del RSS DefaultHandler handler = new DefaultHandler() { Noticia act= null ; boolean titletag= false , contenttag= false ; public void startElement(String uri, String localName, String qName... { if (qName.equalsIgnoreCase( &quot;item&quot; )) act= new Noticia(); else { titletag=qName.equalsIgnoreCase( &quot;title&quot; ); contenttag=qName.equalsIgnoreCase( &quot;content:encoded&quot; ); } } public void characters( char [] ch, int start, int length) ... { if (act== null ) return ; if (titletag) { act.titulo= new String(ch,start,length); titletag= false ; } else if (contenttag) { act.contenido= new String(ch,start,length); contenttag= false ; } } public void endElement(String uri, String localName, String qName) ... { if(qName.equalsIgnoreCase( &quot;item&quot; )) agregarNoticia(act); } };
  16. 16. Muestra de elementos en pantalla Banner con imagen del evento Listado de títulos de noticias Al dar click mostrar contenido
  17. 17. Muestra de elementos en pantalla void agregarNoticia( final Noticia noticia) { UiApplication.getUiApplication().invokeLater( new Runnable() { public void run() { contenedor.add( new LabelField(noticia.titulo,Field.FOCUSABLE) { protected boolean navigationClick( int status, int time) { Screen content= new MainScreen(); BrowserField browser= new BrowserField(); browser.displayContent(noticia.contenido, &quot;&quot; ); content.add(browser); UiApplication.getUiApplication().pushScreen(content); return super.navigationClick(status, time); } }); contenedor.add( new SeparatorField( SeparatorField.LINE_HORIZONTAL)); } }); } public PantallaInicial() { EncodedImage cap= EncodedImage.getEncodedImageResource( &quot;img/banner.png&quot; ); setBanner( new BitmapField(cap.getBitmap(),BitmapField.FIELD_HCENTER)); add(contenedor); actualizarNoticias(); }
  18. 18. Muestra de elementos en pantalla
  19. 19. Gracias por su atención ¿Preguntas?

×