Page 1

Capítulo 3: Meu primeiro aplicativo BlackBerry API A partir deste momento não usaremos mais o Java ME, mas sim, a BlackBerry API, nos nossos exemplos. Porém, as semelhanças irão continuar. Assim como no Java ME, o BlackBerry possui um application manager que será carregado pela máquina virtual Java quando o smartphone é ligado. Sua função aqui é disparar eventos do sistema operacional para as aplicações Java. Lembram que no Java ME a classe principal da aplicação estende obrigatoriamente de MIDlet. Aqui temos duas opções: • net.rim.device.api.ui.UiApplication: usado quando existir uma interface gráfica de usuário; • net.rim.device.api.ui.Application: usado quando não existe uma UI. Sendo assim, o primeiro passo para criar uma aplicação com a BlackBerry API é criar uma classe que estende uma das duas classes anteriores. No nosso caso vamos criar uma interface de usuário, veja a listagem de código abaixo: import net.rim.device.api.ui.UiApplication; public class StudyMain extends UiApplication { }

Com certeza o aplicativo ainda não fará nada. Porém, deixe-me dizer que estendendo uma classe de UiApplication, sua classe terá acesso a métodos que registram listeners, métodos para gerenciamento de threads e métodos para gerenciamento do componentes gráficos, como campos de textos e botões, por exemplo. O segundo passo é a criação do método main, que substitui o startApp do Java ME como ponto inicial do programa: ... public static void main(String[] args) { StudyMain theApp = new StudyMain(); theApp.enterEventDispatcher(); } ...

O ponto mais importante aqui está na última linha do método main. Diga-se de passagem, este método está mais parecido para Java SE do que Java ME. Nesta linha estamos chamando o método enterEventDispatcher().


Este método inicia os listeners e os processadores de mensagens de eventos, como o trackwheel e TrackBall, por exemplo. Este método sempre deve existir dentro do método main. Agora podemos definir o construtor, que foi chamado na primeira linha da listagem de código anterior: public StudyMain() { pushScreen(new StudyMainScreen()); }

Estamos apenas informando o sistema operacional e a application manager para colocar a classe StudyMainScreen na tela, de forma que fique visível ao usuário. O método pushScreen pertence a UiApplication. Aqui vamos abrir um parêntese. Perceba que o método push nos remete a estruturas de dados do tipo pilha. E é isso mesmo que acontece com as telas de um aplicativo BlackBerry API. Existe uma display stack, que sempre mostra ao usuário a tela que está no seu topo. No decorrer do próximo capítulo a display stack será discutida com mais intensidade. Prosseguindo, ainda precisamos criar a classe StudyMainScreen. Veja seu código na listagem a seguir: ... 1:final class StudyMainScreen extends MainScreen { 2: public StudyMainScreen() { 3: super(); 4: LabelField title = new LabelField("Meu BlackBerry API App", 5: LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH); 6: setTitle(title); 7: add(new RichTextField("Olá mundo!")); 8: } 9: 10: public boolean onClose() { 11: Dialog.alert("Tchau!"); 12: System.exit(0); 13: return true; 14: } 15:} ...

A MainScreen é uma das opções existentes para criar uma tela com interface gráfica. Podemos usar diretamente Screen, porém, com a sua especialização temos algumas vantagens. Ela implementa duas interfaces: TrackwheelListener e KeyboardListener. Também, é obrigatório substituir o método onClose e o construtor. No nosso construtor criamos um componente de texto (LabelField, linha 4) e adicionamos o mesmo como título (linha 5). Na linha 7 adicionamos um componente na tela, um RichTextField, que é nada mais que um texto sem interação com usuário.


No método onClose adicionamos um alerta antes do fechamento do programa. Na BlackBerry API, alertas são construídos com a classe Dialog. Um menu de contexto com um item de menu Select também será criado de forma automática, a menos que você sobrescreva alguns métodos, mas isso é assunto para o próximo capítulo. Perceba que não entramos muito em detalhes do código, mas não se preocupem, os próximos capítulos serão muito bons. Veja como ficou o código na íntegra visualizando a Listagem 1: Listagem 1: Classes StudyMain e StudyMainScreen import import import import import

net.rim.device.api.ui.UiApplication; net.rim.device.api.ui.component.Dialog; net.rim.device.api.ui.component.LabelField; net.rim.device.api.ui.component.RichTextField; net.rim.device.api.ui.container.MainScreen;

public class StudyMain extends UiApplication{ public static void main(String[] args) { StudyMain theApp = new StudyMain(); theApp.enterEventDispatcher(); } public StudyMain() { pushScreen(new StudyMainScreen()); } } final class StudyMainScreen extends MainScreen { public StudyMainScreen() { super(); LabelField title = new LabelField("Meu primeiro BlackBerry API App", LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH); setTitle(title); add(new RichTextField("Olá mundo!")); }

}

public boolean onClose() { Dialog.alert("Tchau!"); System.exit(0); return true; }

Depois de salvarmos este projeto vamos ver como ficou no emulador:


Figura 1: Primeiro aplicativo BlackBerry em execução.

Sobre Mim Graduado em Ciência da Computação, pós-graduando em Web e analista de sistemas mobile na MobMidia | Grupo Pontomobi, Ricardo da Silva Ogliari é autor de dezenas de artigos que foram publicados em anais de congressos nacionais e internacionais, sites especializados e revistas. Palestrante em eventos nacionais e internacionais, como JustJava, Java Day, GeoLivre, ExpoGPS, FISL e FITE, sempre aborda temas relacionados a computação móvel.

Meu primeiro Aplicativo BlackBerry API  

Neste capítulo do Curso BlackBerry Development, aprenda como criar seu primeiro aplicativo com a BlackBerry API.

Read more
Read more
Similar to
Popular now
Just for you