Desenvolvendo para Android– Intents

Standard

Ola a todos os leitores  e bem vindos para mais um post da serie Desenvolvendo para android. Para quem não teve o oportunidade de ler o post anterior da série, pode o fazer já AQUI.

Porque muitas das aplicações existentes no playstore não são compostas por uma única Activity, e importante saber como navegar entre Activities utilizando os mecanismos correctos para o efeito. Este post será em volta do mecanismo de comunicação( messaging) que o android oferece de forma que possamos:

  • Passar de uma activity para a outra dentro da mesma aplicação
  • Passar informação entre activities.
  • Chamar Activities de outras aplicações.

Como mencionei acima, o android possui um mecanismo de comunicação entre componentes  das aplicacoes (Activites, Services, BroadCastReceivers)  altamente avançado e devidamente documentado com o nome de Intent.  Pela definição do site, um Intent e um objecto de messaging  que pode ser utilizado para pedir a realização de uma certa acção por parte de um componente na mesma ou em outra aplicação. Como o nome sugere, podemos entender um Intent como uma “intenção” que temos de fazer algo e as “intenções” comuns costumam ser:

  • Iniciar uma nova Activity: Ao utilizar um Intent para iniciar uma Activity, este contem a especificação sobre a Activity a inicializar e as possíveis informações que podemos querer passar. E possível  também fazer com que ao fechar a Activity iniciada, esta mande algum tipo de resultado para a activity que foi responsável pela sua inicialização. (Um clássico do envio de resultado a uma Activity é quando chamamos a activity da camera a partir do chat do whatsapp e depois de tirar a foto, temos ela já  na activity correspondente a conversa de chat em que pretendíamos enviar a foto) .
  • Iniciar um Service ou fazer a Entrega de um BroadCast: A esta altura não é importante falar de Services ou Broadcasts pois são tópicos que precisam um pouco de atenção mas para os mais curiosos, mais informação esta disponível AQUI.

O tópico sobre os Intents e muito mais pratico e para isso vamos continuar a modificar o codigo da aplicação anterior começando por abrir o ficheiro activity_main.xml e modificar para que fique como na figura abaixo e no seguinte gist.

activitymain

As modificações foram efectuadas de forma a  permitir que:

  • Ao clicar no botão “Mostrar Nome” utilizaremos um Intent para iniciar uma Activity que irá simplesmente mostrar o nome escrito no EditText em um TextView da nova Activity.
  • Ao clicar no botão “Enviar Email” utilizaremos um Intent para chamar uma activity fora da aplicação que tenha a capacidade de enviar um e-mail( De certeza o Gmail estará presente na).
  • Ao clicar no botão “Tirar uma Fotografia” iremos simular o que acontece no whatsapp ao tirar uma foto utilizando uma activity externa a nossa aplicação e depois mostrar a foto na ImageView no layout.

Antes de continuar para a modificação do ficheiro MainActivity.java vamos criar uma nova Activity e para tal basta ir até ao pacote que contem a Activity Main, fazer o right click no mouse e seleccionar new->Activity->Blank Activity e será apresentada uma janela para colocar o nome da activity como na imagem abaixo.

AddBlankActivity

Atenção:  E possível criar uma activity extendendo uma classe java directamente da Activity e de seguida criar o ficheiro xml correspondente dentro da pasta layout mas não aconselho esta prática pois e muito fácil cair no erro de esquecer de declarar a activity no manifest como foi explicado AQUI e consequentemente erros ao executar a aplicação.

Após criar a SegundaActivity será necessário efectuar as modificações na SegundaActivity.java contidas neste Gist e ao activity_segunda.xml neste gist..

Tendo a nossa segunda activity pronta, está na hora de efectuar as modificações na MainActivity.java. Porque a explicação do uso de Intents é mesmo técnica e directa ao assunto, siga o seguinte gist para copiar o codigo e acompanhar os comentarios contidos nele.

Com todas as modificacoes feitas e muito codigo escrito, e chegada a hora de  clicar no botao para correr a aplicacao e testar o que estivemos aqui a fazer.

Na minha opiniao, este e um tema bastante importante e acredito que assim que o entenderem, os proximos posts da série pareceram muito mais simples. Caso exista alguma duvida  ou sugestão basta deixar um comentário na secção a baixo que terei o prazer de responder ou debater sobre o assunto.

Obrigado e Até a Próxima

3 thoughts on “Desenvolvendo para Android– Intents

  1. Mauro

    Estive vendo seu tutorial sobre a criação do projeto utilizando a toolbar em uma gaveta de navegação, tenho um projeto que segue o mesmo, porém estou com um probleminha quanto a presença da barra Toolbar na segunda Activity que criei . Era para a barra aparecer, mas não aparece é como se a Activity não tivesse um Theme e ela ocupa toda a tela do celular apresentando somente o valor de um textView. Tem como fazer ela aparecer na segunda. Desde já agradeço.

Leave a comment