SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Criando itens de menu em aplicativos nativos com a BlackBerry API Boa tarde... Primeiramente, gostaria de falar que este post foi inspirado no texto “Crie Aplicativos BlackBerry com Ferramentas de Software Livre, Parte 3: Construindo um Aplicativo de Redes de Relacionamentos”. Ele mostra como criar um aplicativo que insere um menu item no aplicativo de tarefas do BlackBerry, permitindo que uma tarefa seja enviada para um contato do device.  Bem, a idéia aqui é demonstrar como podemos criar um item de menu em aplicativos nativos do aparelho. Vamos criar um aplicativo que vai interferir em três aplicações nativas: despertador, calendário e visualização de email.  O primeiro passo é criar uma aplicação BlackBerry básica. Nos tutoriais anteriores criados pelo Mobilidade é Tudo, sempre criamos classes que extendiam de UiApplication. Desta vez, extendemos apenas de Application. Porque isso, porque nossa aplicação não terá interface gráfica, será apenas uma aplicação sem interação direta com o usuário.  Veja como fica nossa classe principal na Listagem 1: Listagem 1 0: import net.rim.device.api.system.Application; 1: import net.rim.blackberry.api.menuitem.*; 2: class Principal extends Application 3: { 4:     public static void main(String[] args) 5:     { 6:         Principal theApp = new Principal (); 7:     } 8: 9:     public Principal () 10:    { 11:   ApplicationMenuItemRepository.getInstance().addMenuItem (ApplicationMenuItemRepository.MENUITEM_CALENDAR, new CalendarMenus(0, 
Compartilhar evento
)); 12:   13:ApplicationMenuItemRepository.getInstance().addMenuItem (ApplicationMenuItemRepository.MENUITEM_EMAIL_VIEW, new MenuItemEV(0));         14: 15:ApplicationMenuItemRepository.getInstance().addMenuItem (ApplicationMenuItemRepository.MENUITEM_ALARM, new MenuItemDesp()); 16:    }     17: } Veja na linha 2 a palavra extends seguida da classe Application. No método main (linha 4) apenas chamamos o construtor da classe. Aqui começa nossa brincadeira. Para inserir um item de menu em aplicativos nativos usamos uma instância da classe ApplicationMenuItemRepository, e, seu método addMenuItem(). Perceba que criamos uma instância da classe sem a palavra reservada nem, mas sim, com o uso do método getInstance(). Para o método addMenuItem devemos passar dois, três ou quatro parâmetros. Neste tutorial porém, vamos trabalhar com apenas dois construtores. O primeiro representa um número long que identifica o aplicativo onde o item do menu será inserido.  A classe ApplicationMenuItemRepository jê tem algumas ocnstantes que representam estes valores. No exemplo usamos 3: MENUITEM_CALENDAR, MENUITEM_EMAIL_VIEW e MENUITEM_ALARM. Consulte a documentação da classe para ver todas as constantes.  O segundo parâmetro do método representa uma classe que seja uma ApplicationMenuItem, o caso mais conhecido é a herança. Ou seja, qualquer classe que herde de ApplicationMenuItem. Além disso, a classe deve seguir um contrato, implementando alguns métodos. Esses métodos são: Object run(Object context) e String toString(). Por exemplo, volte à primeira listagem de código, veja a linha 11. Passamos como segundo parâmetro uma instância da classe CalendarMenus. Veja na Listagem 2: Listagem 2 01: import javax.microedition.pim.Contact; 02: import javax.microedition.pim.Event; 03: import javax.microedition.pim.PIM; 04: import net.rim.blackberry.api.menuitem.ApplicationMenuItem; 05: import net.rim.blackberry.api.pdap.BlackBerryContactList; 06: import net.rim.device.api.ui.component.Dialog; 07: 08: class CalendarMenus extends ApplicationMenuItem { 09:    String myname; 10: CalendarMenus(int order,String name) 11:    {     12:        super(order); 13:        myname = name; 14:    } 15:     16:    public Object run(Object context) 17:    { 18:        if (context instanceof Event) 19:        { 20:            try 21:            {                 22:                Event evt = (Event) context;            23:                handleCalendarEvent(evt); 24:            } 25:            catch (Exception ex) 26:            { 27:                ex.printStackTrace(); 28:            } 29:         30:        } 31:        return context; 32:    } 33: 34:    public String toString(){ 35:        return myname; 36:    }     37:     38:    public void handleCalendarEvent(Event e) 39:    { 40:      try 41:      { 42:        net.rim.blackberry.api.pdap.BlackBerryContactList contactList = (BlackBerryContactList) PIM.getInstance().openPIMList(PIM.CONTACT_LIST,PIM.READ_ONLY); 43:        Contact c = contactList.choose(null,BlackBerryContactList.AddressTypes.EMAIL,false); 44:        if (c == null) 45:        { 46:           Dialog.alert(
escolha um contato
); 47:        } 48:        else 49:        { 50:            String emailAddress = c.getString(Contact.EMAIL,0); 51:            String[] nameFragments = c.getStringArray(Contact.NAME, 0); 52:            String eventData = nameFragments[1]+
 
+nameFragments[0]+
, você foi convidado para:
; 53:            eventData+=
Oque?: 
+e.getString(Event.SUMMARY,0)+

; 54:            eventData+=
Onde:
+e.getString(Event.LOCATION,0)+

; 55:            eventData+=
Quando:
+new java.util.Date(e.getDate(Event.START,0)).toString() + 
 until 
 + new java.util.Date(e.getDate(Event.END,0)).toString() + 

; 56:             57:            Dialog.alert(eventData);  58:        } 59:         60:      } 61:      catch (Exception ee) 62:      { 63:          System.err.println(ee.getMessage()); 64:          ee.printStackTrace(); 65:      } 66:    }     67: }  Na última listagem sobrescrevemos os métodos necessários para termos um item de menu válido. O método toString() serve para informar qual o rótulo que o item mostrará no display. Logo, na linha 35 apenas retornamos a string recebida por parâmetro no construtor da classe (linha 13). O método run, na linha 16, é a ação que será executada quando o nosso item for acionado.  No nosso exemplo vamos mostrar os detalhes da tarefa em um Dialog. Então, na primeira linha do run (linha 18), verificamos se contexto que chamou a ação é mesmo uma instância da classe Event. Caso afirmativo, apenas chamamos o método handleCalendarEvent. No método handleCalendarEvent, criamos uma instância da classe BlackBerryContactList, que, segundo a própria documentação da RIM, contém a implementação de uma lista de contatos (classe ContactList) especifica para BlackBerry (linha 42). Na linha seguinte esperamos pela escolha do usuário para criar a instância de um objeto Contact. Ao selecionar um contato passaremos pelo teste se da linha 44. Nas linhas 50 e 51 recuperamos o email e o nome do contato selecionado. Aliás, esse assunto já é relacionado a PIM API do Java ME, que permite que você veja a agenda e lista de tarefas do device, por exemplo. Seguindo, das linhas 75 até a 79 montamos uma String, acessando campos do evento através de constantes da casse EVENT. Na linha 81 nós mostramos a mensagem em um Dialog.  Vamos ver em imagem oque construímos aqui. Na Figura 1 apresentamos o aplicativo de tarefas nativa do BlackBerry. Na listagem 2 mostramos o mesmo aplicativo com o nosso menu item. Na Figura 3 podemos ver oque a classe BlackBerryContactList faz. E, por fim, a Figura 4 mostra a mensagem que construímos acessando os campos das classes Event e Contact. Figura 1: Aplicativo de tarefas nativa do dispositivo. Figura 2: Aplicativo de tarefa com nosso menu item. Figura 3: lista de contatos. Figura 4: mensagem entregue pelo aplicativo. Assim como criamos um menu item para o aplicativo de tarefa, podemos inserir itens em diversos aplicativos nativos. Por exemplo, veja a Figura 5 e 6, que inserem itens nos aplicativos de despertador e visualizador de email do BlackBerry. Figura 4: aplicativo nativo de despertador com o nosso item de menu “Alarme do Ping”. Figura 4: aplicativo nativo de leitura de email com o nosso menu item “Ver mensagem Out”.
Criando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry API

Weitere ähnliche Inhalte

Andere mochten auch

Utilizando O Cell Id Para Popularizar Os Sistemas Lbs
Utilizando O Cell Id Para Popularizar Os Sistemas LbsUtilizando O Cell Id Para Popularizar Os Sistemas Lbs
Utilizando O Cell Id Para Popularizar Os Sistemas LbsRicardo Ogliari
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com androidRicardo Ogliari
 
Internacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry APIInternacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry APIRicardo Ogliari
 
Intel edison Primeiro Projeto
Intel edison Primeiro ProjetoIntel edison Primeiro Projeto
Intel edison Primeiro ProjetoRicardo Ogliari
 
Diferentes culturas do mundo
Diferentes culturas do mundoDiferentes culturas do mundo
Diferentes culturas do mundoanocas_rita
 

Andere mochten auch (8)

Utilizando O Cell Id Para Popularizar Os Sistemas Lbs
Utilizando O Cell Id Para Popularizar Os Sistemas LbsUtilizando O Cell Id Para Popularizar Os Sistemas Lbs
Utilizando O Cell Id Para Popularizar Os Sistemas Lbs
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com android
 
Trechos interessantes
Trechos interessantesTrechos interessantes
Trechos interessantes
 
Palm e web os
Palm e web osPalm e web os
Palm e web os
 
Internacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry APIInternacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry API
 
Bada
BadaBada
Bada
 
Intel edison Primeiro Projeto
Intel edison Primeiro ProjetoIntel edison Primeiro Projeto
Intel edison Primeiro Projeto
 
Diferentes culturas do mundo
Diferentes culturas do mundoDiferentes culturas do mundo
Diferentes culturas do mundo
 

Ähnlich wie Criando itens de menu em aplicativos nativos com a BlackBerry API

Excel Basic com VBA - Macros
Excel Basic com VBA - MacrosExcel Basic com VBA - Macros
Excel Basic com VBA - MacrosJoao Sousa
 
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdfAula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdfnosbisantos
 
Lista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a ObjetosLista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a Objetosunifesptk
 
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoCapítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoMarcio Palheta
 
Desmistificando o cairngorm
Desmistificando o cairngormDesmistificando o cairngorm
Desmistificando o cairngormEric Cavalcanti
 
Como criar uma calculadora no Game Maker 8.0 (GML Console)
Como criar uma calculadora no Game Maker 8.0 (GML Console)Como criar uma calculadora no Game Maker 8.0 (GML Console)
Como criar uma calculadora no Game Maker 8.0 (GML Console)Rodrigo Cavalcante
 
Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Vanderson Silva
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#Felipe Pimentel
 
Tutorial java orientação a objetos parte 1
Tutorial java orientação a objetos parte 1Tutorial java orientação a objetos parte 1
Tutorial java orientação a objetos parte 1Elaine Cecília Gatto
 
Aula - 04 - Android - Interface grafica (layout, widgets)
Aula - 04 - Android - Interface grafica (layout, widgets)Aula - 04 - Android - Interface grafica (layout, widgets)
Aula - 04 - Android - Interface grafica (layout, widgets)Arthur Emanuel
 
Criando uma agenda simples com NetBeans
Criando uma agenda simples com NetBeansCriando uma agenda simples com NetBeans
Criando uma agenda simples com NetBeansMarcus Becker
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8 Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8 PeslPinguim
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 

Ähnlich wie Criando itens de menu em aplicativos nativos com a BlackBerry API (20)

Excel Basic com VBA - Macros
Excel Basic com VBA - MacrosExcel Basic com VBA - Macros
Excel Basic com VBA - Macros
 
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdfAula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
Aula 15 e 16 - Navegação - Activities e Fragments.pptx.pdf
 
Lista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a ObjetosLista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a Objetos
 
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoCapítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
 
Desmistificando o cairngorm
Desmistificando o cairngormDesmistificando o cairngorm
Desmistificando o cairngorm
 
Como criar uma calculadora no Game Maker 8.0 (GML Console)
Como criar uma calculadora no Game Maker 8.0 (GML Console)Como criar uma calculadora no Game Maker 8.0 (GML Console)
Como criar uma calculadora no Game Maker 8.0 (GML Console)
 
Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3
 
Java 06
Java 06Java 06
Java 06
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#
 
Tutorial java orientação a objetos parte 1
Tutorial java orientação a objetos parte 1Tutorial java orientação a objetos parte 1
Tutorial java orientação a objetos parte 1
 
CURSO JAVA 02
CURSO JAVA 02CURSO JAVA 02
CURSO JAVA 02
 
Java5
Java5Java5
Java5
 
Python Interface Gráfica Tkinter
Python Interface Gráfica TkinterPython Interface Gráfica Tkinter
Python Interface Gráfica Tkinter
 
Aula - 04 - Android - Interface grafica (layout, widgets)
Aula - 04 - Android - Interface grafica (layout, widgets)Aula - 04 - Android - Interface grafica (layout, widgets)
Aula - 04 - Android - Interface grafica (layout, widgets)
 
Criando uma agenda simples com NetBeans
Criando uma agenda simples com NetBeansCriando uma agenda simples com NetBeans
Criando uma agenda simples com NetBeans
 
A programação básica
A programação básicaA programação básica
A programação básica
 
A programacao basica
A programacao basicaA programacao basica
A programacao basica
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8 Curso Básico de Java - Aula 8
Curso Básico de Java - Aula 8
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 

Mehr von Ricardo Ogliari

Clean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e FlutterClean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e FlutterRicardo Ogliari
 
Mobile, Flutter e Mercado
Mobile, Flutter e MercadoMobile, Flutter e Mercado
Mobile, Flutter e MercadoRicardo Ogliari
 
Aula 1 view model livedata e databinding.pptx
Aula 1   view model livedata e databinding.pptxAula 1   view model livedata e databinding.pptx
Aula 1 view model livedata e databinding.pptxRicardo Ogliari
 
Programando em ruby para arduino
Programando em ruby para arduinoProgramando em ruby para arduino
Programando em ruby para arduinoRicardo Ogliari
 
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.Ricardo Ogliari
 
A hora de criar LBS para pequenos dispositivos é agora!!
A hora de criar LBS para pequenos dispositivos é agora!!A hora de criar LBS para pequenos dispositivos é agora!!
A hora de criar LBS para pequenos dispositivos é agora!!Ricardo Ogliari
 

Mehr von Ricardo Ogliari (7)

IoT além do Arduino
IoT além do ArduinoIoT além do Arduino
IoT além do Arduino
 
Clean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e FlutterClean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e Flutter
 
Mobile, Flutter e Mercado
Mobile, Flutter e MercadoMobile, Flutter e Mercado
Mobile, Flutter e Mercado
 
Aula 1 view model livedata e databinding.pptx
Aula 1   view model livedata e databinding.pptxAula 1   view model livedata e databinding.pptx
Aula 1 view model livedata e databinding.pptx
 
Programando em ruby para arduino
Programando em ruby para arduinoProgramando em ruby para arduino
Programando em ruby para arduino
 
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
 
A hora de criar LBS para pequenos dispositivos é agora!!
A hora de criar LBS para pequenos dispositivos é agora!!A hora de criar LBS para pequenos dispositivos é agora!!
A hora de criar LBS para pequenos dispositivos é agora!!
 

Criando itens de menu em aplicativos nativos com a BlackBerry API

  • 1. Criando itens de menu em aplicativos nativos com a BlackBerry API Boa tarde... Primeiramente, gostaria de falar que este post foi inspirado no texto “Crie Aplicativos BlackBerry com Ferramentas de Software Livre, Parte 3: Construindo um Aplicativo de Redes de Relacionamentos”. Ele mostra como criar um aplicativo que insere um menu item no aplicativo de tarefas do BlackBerry, permitindo que uma tarefa seja enviada para um contato do device. Bem, a idéia aqui é demonstrar como podemos criar um item de menu em aplicativos nativos do aparelho. Vamos criar um aplicativo que vai interferir em três aplicações nativas: despertador, calendário e visualização de email. O primeiro passo é criar uma aplicação BlackBerry básica. Nos tutoriais anteriores criados pelo Mobilidade é Tudo, sempre criamos classes que extendiam de UiApplication. Desta vez, extendemos apenas de Application. Porque isso, porque nossa aplicação não terá interface gráfica, será apenas uma aplicação sem interação direta com o usuário. Veja como fica nossa classe principal na Listagem 1: Listagem 1 0: import net.rim.device.api.system.Application; 1: import net.rim.blackberry.api.menuitem.*; 2: class Principal extends Application 3: { 4: public static void main(String[] args) 5: { 6: Principal theApp = new Principal (); 7: } 8: 9: public Principal () 10: { 11: ApplicationMenuItemRepository.getInstance().addMenuItem (ApplicationMenuItemRepository.MENUITEM_CALENDAR, new CalendarMenus(0, Compartilhar evento )); 12: 13:ApplicationMenuItemRepository.getInstance().addMenuItem (ApplicationMenuItemRepository.MENUITEM_EMAIL_VIEW, new MenuItemEV(0)); 14: 15:ApplicationMenuItemRepository.getInstance().addMenuItem (ApplicationMenuItemRepository.MENUITEM_ALARM, new MenuItemDesp()); 16: } 17: } Veja na linha 2 a palavra extends seguida da classe Application. No método main (linha 4) apenas chamamos o construtor da classe. Aqui começa nossa brincadeira. Para inserir um item de menu em aplicativos nativos usamos uma instância da classe ApplicationMenuItemRepository, e, seu método addMenuItem(). Perceba que criamos uma instância da classe sem a palavra reservada nem, mas sim, com o uso do método getInstance(). Para o método addMenuItem devemos passar dois, três ou quatro parâmetros. Neste tutorial porém, vamos trabalhar com apenas dois construtores. O primeiro representa um número long que identifica o aplicativo onde o item do menu será inserido. A classe ApplicationMenuItemRepository jê tem algumas ocnstantes que representam estes valores. No exemplo usamos 3: MENUITEM_CALENDAR, MENUITEM_EMAIL_VIEW e MENUITEM_ALARM. Consulte a documentação da classe para ver todas as constantes. O segundo parâmetro do método representa uma classe que seja uma ApplicationMenuItem, o caso mais conhecido é a herança. Ou seja, qualquer classe que herde de ApplicationMenuItem. Além disso, a classe deve seguir um contrato, implementando alguns métodos. Esses métodos são: Object run(Object context) e String toString(). Por exemplo, volte à primeira listagem de código, veja a linha 11. Passamos como segundo parâmetro uma instância da classe CalendarMenus. Veja na Listagem 2: Listagem 2 01: import javax.microedition.pim.Contact; 02: import javax.microedition.pim.Event; 03: import javax.microedition.pim.PIM; 04: import net.rim.blackberry.api.menuitem.ApplicationMenuItem; 05: import net.rim.blackberry.api.pdap.BlackBerryContactList; 06: import net.rim.device.api.ui.component.Dialog; 07: 08: class CalendarMenus extends ApplicationMenuItem { 09: String myname; 10: CalendarMenus(int order,String name) 11: { 12: super(order); 13: myname = name; 14: } 15: 16: public Object run(Object context) 17: { 18: if (context instanceof Event) 19: { 20: try 21: { 22: Event evt = (Event) context; 23: handleCalendarEvent(evt); 24: } 25: catch (Exception ex) 26: { 27: ex.printStackTrace(); 28: } 29: 30: } 31: return context; 32: } 33: 34: public String toString(){ 35: return myname; 36: } 37: 38: public void handleCalendarEvent(Event e) 39: { 40: try 41: { 42: net.rim.blackberry.api.pdap.BlackBerryContactList contactList = (BlackBerryContactList) PIM.getInstance().openPIMList(PIM.CONTACT_LIST,PIM.READ_ONLY); 43: Contact c = contactList.choose(null,BlackBerryContactList.AddressTypes.EMAIL,false); 44: if (c == null) 45: { 46: Dialog.alert( escolha um contato ); 47: } 48: else 49: { 50: String emailAddress = c.getString(Contact.EMAIL,0); 51: String[] nameFragments = c.getStringArray(Contact.NAME, 0); 52: String eventData = nameFragments[1]+ +nameFragments[0]+ , você foi convidado para: ; 53: eventData+= Oque?: +e.getString(Event.SUMMARY,0)+ ; 54: eventData+= Onde: +e.getString(Event.LOCATION,0)+ ; 55: eventData+= Quando: +new java.util.Date(e.getDate(Event.START,0)).toString() + until + new java.util.Date(e.getDate(Event.END,0)).toString() + ; 56: 57: Dialog.alert(eventData); 58: } 59: 60: } 61: catch (Exception ee) 62: { 63: System.err.println(ee.getMessage()); 64: ee.printStackTrace(); 65: } 66: } 67: } Na última listagem sobrescrevemos os métodos necessários para termos um item de menu válido. O método toString() serve para informar qual o rótulo que o item mostrará no display. Logo, na linha 35 apenas retornamos a string recebida por parâmetro no construtor da classe (linha 13). O método run, na linha 16, é a ação que será executada quando o nosso item for acionado. No nosso exemplo vamos mostrar os detalhes da tarefa em um Dialog. Então, na primeira linha do run (linha 18), verificamos se contexto que chamou a ação é mesmo uma instância da classe Event. Caso afirmativo, apenas chamamos o método handleCalendarEvent. No método handleCalendarEvent, criamos uma instância da classe BlackBerryContactList, que, segundo a própria documentação da RIM, contém a implementação de uma lista de contatos (classe ContactList) especifica para BlackBerry (linha 42). Na linha seguinte esperamos pela escolha do usuário para criar a instância de um objeto Contact. Ao selecionar um contato passaremos pelo teste se da linha 44. Nas linhas 50 e 51 recuperamos o email e o nome do contato selecionado. Aliás, esse assunto já é relacionado a PIM API do Java ME, que permite que você veja a agenda e lista de tarefas do device, por exemplo. Seguindo, das linhas 75 até a 79 montamos uma String, acessando campos do evento através de constantes da casse EVENT. Na linha 81 nós mostramos a mensagem em um Dialog. Vamos ver em imagem oque construímos aqui. Na Figura 1 apresentamos o aplicativo de tarefas nativa do BlackBerry. Na listagem 2 mostramos o mesmo aplicativo com o nosso menu item. Na Figura 3 podemos ver oque a classe BlackBerryContactList faz. E, por fim, a Figura 4 mostra a mensagem que construímos acessando os campos das classes Event e Contact. Figura 1: Aplicativo de tarefas nativa do dispositivo. Figura 2: Aplicativo de tarefa com nosso menu item. Figura 3: lista de contatos. Figura 4: mensagem entregue pelo aplicativo. Assim como criamos um menu item para o aplicativo de tarefa, podemos inserir itens em diversos aplicativos nativos. Por exemplo, veja a Figura 5 e 6, que inserem itens nos aplicativos de despertador e visualizador de email do BlackBerry. Figura 4: aplicativo nativo de despertador com o nosso item de menu “Alarme do Ping”. Figura 4: aplicativo nativo de leitura de email com o nosso menu item “Ver mensagem Out”.