Computação Móvel Activity (Ref. Cap. 4)

Documentos relacionados
Log, Ciclo de Vida e Diálogos. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Usando e Gerenciando Activities

Programação para Dispositivos Móveis

Módulo 2 - Novas Activities Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Login. Criar uma nova Activity. Login. Luiz Eduardo Guarino de Vasconcelos

Android: Ciclo de vida da Activity

Criando as primeiras telas (Activity)

Computação Móvel ActionBar e Temas (Ref. Cap. 5)

Android DEFINIÇÕES E CICLO DE VIDA. Prof. Dr. Joaquim assunção.

Desenvolvimento de um aplicativo básico usando o Google Android

Curso de Android - 2 Novas Activities. SECAP Prof. Rone Ilídio - UFSJ

Navegar entre páginas Necessário o uso de Intent. Intenção de ir a algum lugar, acessar outros recursos, outros apps.

TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

INTRODUÇÃO À PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS. ADS 6º Período

Tutorial Android Speech

Desenvolvimento de um aplicativo básico usando o Google Android

Android Activity. Ivan Nicoli

Programação para Android. Aula 06: Activity, menus e action bar

============================== Exemplo ListView MainActivity.java

Programação para Dispositivos Móveis. Activity e Intent

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Trabalhando com Mensagens. File > New > New Project. Uso de mensagens (Toast) Luiz Eduardo Guarino de Vasconcelos

Desenvolvimento de um aplicativo básico usando o Google Android

Universidade Federal do Paraná

Retrofit. Criar um novo projeto. Selecionar a API. Retrofit para consumir Web Service Luiz Eduardo Guarino de Vasconcelos

Android. Interfaces: widgets

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Programação para a Plataforma Android Aula 16. Fragmentos

Programação para Dispositivos Móveis

Mensagens. Para conhecimento. Renomear arquivos. Botão Direito no arquivo > Rafactor > Rename Shift + F6

Módulo 4 - Interface Gráfica Gerenciadores de Layout. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Primeira Aplicação Android Olá Mundo. Prof. Fellipe Aleixo

Programando Intenções. Prof. Fellipe Aleixo

Computação Móvel Conceitos Básicos do Android Ref. Capítulo 3

Aplicações que executam, em geral, processos longos em background desprovidos de interface. Usado para executar tarefas em segundo plano

Módulo 3 - Intenções. SECAP 2014 Prof. Rone Ilídio - UFSJ

Fragments. Criar um novo projeto. Selecionar a API. Navigation Drawer Activity. Fragments. Luiz Eduardo Guarino de Vasconcelos

Capítulo 02: Cadastro de Alunos

Biblioteca Android PagSeguro UOL - Checkout in App Manual de Uso

Prof. Jhonatan Fernando

Google Android. Intents

AULA 3. Minicurso PET-EE UFRN

Firebase. Acesse o site Acesse o menu Go to Console. Acesse com uma conta Google ou crie uma conta.

Desenvolvimento de Aplicativos Android

Programação para Dispositivos Móveis. Activities

ANDROID, uma visão geral. Anderson Duarte de Amorim

Expectativa de respostas

Programação para Dispositivos Móveis

Programação para a Plataforma Android Aula 13. Localização

Prof: Ricardo Quintão Site:

Android Banco de Dados. Ivan Nicoli

Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android. Realização de Dinâmica Hands- On para Construção de uma App Android

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Ficha de Expectativa de Resposta da Prova Escrita

Programação de Dispositivos Móveis

Programação de Dispositivos Móveis

Android OLÁ MUNDO MÓVEL. Prof. Dr. Joaquim assunção.

Programação para Dispositivos Móveis. Banco de Dados (SQLite)

Introdução ao Desenvolvimento para Sistema Operacional Android

Escrito por Lisiane Batista Neitzke Qui, 29 de Dezembro de :24 - Última atualização Seg, 16 de Janeiro de :41

Programação para Android. Aula 10: Acesso a câmera, sms e recursos do aparelho

ANDROID APRENDIZ. Um guia para iniciantes Crie seu primeiro aplicativo Android

PROPOSTA DE UM PADRÃO DE PROJETO PARA ANDROID UTILIZANDO A WEB

Android I N T R O D U Ç Ã O À P R O G R A M A Ç Ã O P R O F E S S O R L E O N A R D O C. R. S O A R E S - L A R B A C K

BroadcastReceiver. O que são mensagens broadcasts? Use notificações! (Serão explicadas em breve)

HCI Summer Workshop. Android #1. Tiago Guerreiro.

Programação para Dispositivos Móveis

PROGRAMAÇÃO MOBILE Estudo de Caso

Programa de Dispositivos Móveis

Desenvolvimento Android.

Programação em Java para a Plataforma Android AULA 1. Primeiros Passos

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ

Comunicação entre A0vidades

Programação para a Plataforma Android Aula 17. Broadcasts

Geração Automática de Código Android Eficiente a partir de Modelos UML

Projeto GoHome Tutorial Sobre o serviço do Google Maps no Android

Prof: Ricardo Quintão Site:

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Programação para a Plataforma Android Aula 2. Aula 2 Views

Programação para Android. Aula 08: Persistência de dados SQL

Mais Elementos da Interface com o Usuário. Prof. Fellipe Aleixo

Avisos e Notificações aos Usuários

Criando um Joguinho 2D. Prof. Fellipe Aleixo

Definições de Projeto

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler

Desenvolvimento para Android Prá9ca 2. Prof. Markus Endler

Armazenamento de dados

Exemplo de Aplicaça o Facebook

1. SQLite No Android 2. API de Acesso Listagem 1 SQLiteDatabase SQLiteOpenHelper Listagem 1 Android Studio SQLiteOpenHelper Android Studio

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

itec h- ON & E ngenharia de S oftware Joel Carvalho - 05/05/2011 Novas Tecnologias Aplicadas à Eng. de So5.

Desenvolvimento Android. Pontapé inicial...

Computação Móvel Persistência (Ref. Cap. 18)

Android Layout Manager. Ivan Nicoli

Introdução à Programação Android

Computação II Orientação a Objetos

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Programação para Dispositivos Móveis

ESPECIFICAÇÃO TÉCNICA CIELO MOBILE CHAMADA EXTERNA. Maio de 2015

Transcrição:

Universidade Federal de Ouro Preto Departamento de Computação e Sistemas - DECSI Computação Móvel Activity (Ref. Cap. 4) Vicente Amorim vicente.amorim.ufop@gmail.com

Sumário * Activity - Classes FragmentActivity e AppCompatActivity - Ciclo de Vida de uma Activity - Ciclo de Vida Avançado - Navegação e Criação de Nova Activity - ActionBar e Navegação Para a Tela Anterior

Activity

Activity - Activity Geralmente representa uma tela da aplicação. Controla os eventos e define quem tem direito a desenhar na tela. Obrigatoriamente deve herdar da classe android.app.activity (ou qualquer outra subclasse). Cada activity deve implementar o método oncreate(): Inicializações necessárias para a carga de uma dada activity.

Activity - Activity oncreate(): Pode, por exemplo, definir a view a ser utilizada através da chamada ao setcontentview(...). Cada Activity deve ser obrigatoriamente declarada no AndroidManifest.xml. Uso da tag <activity>: <activity android:name="com.example.appnum5.mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity>

Classes FragmentActivity e AppCompatActivity

Classes FragmentActivity e AppCompatActivity - Compatibilidade À partir do Android 3.0 foram inseridas as APIs de Fragments e ActionBar. Tais APIs não funcionam em versões anteriores do Android. ActionBar é representada pela classe android.app.actionbar; Fragment é representado pela classe android.app.fragment. Como utilizar tais APIs em versões anteriores à 3.0?. android.support.v4.app.fragmentactivity (API Level 4); e. android.support.v7.app.appcompatactivity (API Level 7).

Ciclo de Vida de uma Activity

Activity - Ciclo de vida de uma Activity Uma Activity é governada através de estados específicos:. Executando;. Interrompida;. Em segundo plano; e. Destruída. SO é quem coloca/retira a aplicação em cada um dos possíveis estados. Desenvolvedor deve levar em conta cada um dos estados quando criando uma aplicação Android.

Activity - Ciclo de vida de uma Activity Caso de exemplo: Usuário em um jogo recebe uma ligação telefônica. O que acontece? Android oferece suporte à troca de aplicações em execução. Entretanto, desenvolvedor deve implementar corretamente a aplicação.

Activity - Ciclo de vida de uma Activity Existem métodos da classe Activity que podem ser utilizados para controlar o estado da aplicação. Exemplo: oncreate(bundle) é responsável por inicializar a activity e iniciar seu ciclo de vida. É possível controlar ainda qualquer um dos estados para o qual a activity vá. Controle é feito pelo SO através de callbacks na aplicação Android.

Activity - Ciclo de vida de uma Activity http://developer.android.com/training/basics/activity-lifecycle/starting.html

Activity - Ciclo de vida de uma Activity Método Descrição oncreate(bundle) onstart() onrestart() onresume() onpause() onstop() ondestroy() Obrigatório e chamado uma única vez. Faz a inicialização necessária para executar a aplicação. Nele deve-se criar uma view e chamar o método setcontentview(view). Chamado quando a Activity está ficando visível ao usuário e já tem uma view. Pode ser invocado após os métodos oncreate() e onrestart(). Chamado quando uma Activity foi parada temporariamente e está sendo iniciada outra vez. Chamado quando a Activity está no topo da pilha activity stack. Quando o método onresume() executa o usuário já está vendo a tela, assim esse método é bastante utilizado para disparar threads que consultam dados na web ou em um banco de dados. Chamado para salvar o estado da aplicação, para que posteriormente, quando a Activity voltar a executar, tudo possa ser recuperado se necessário, através do método onresume(). Chamado logo após o método onpause() e indica que a Activity está sendo encerrada e não está mais visível ao usuário. Caso a Activity fique muito tempo parada em segundo plano, seus recursos podem ser removidos pelo SO (seguido de uma chamada ao ondestroy()). Encerra a execução de uma Activity. Pode ser chamado automaticamente pelo SO para liberar recursos ou através do método finish() de uma Activity.

Activity - Ciclo de vida de uma Activity Sempre que uma Activity está pausada o SO pode decidir encerrar o processo para liberar recursos - por exemplo. O conceito de Activity stack é aplicado a qualquer aplicação: Home, launcher, caller, jogos, etc. Métodos da classe Activity são utilizados para se controlar o ciclo de vida de uma activity -> aplicação. oncreate(), onstart(), onrestart(), onpause(), onresume(), onstop(), ondestroy().

Activity - Ciclo de vida de uma Activity Cada activity iniciada é colocada no topo de uma pilha, chamada de activity stack.

Activity - Ciclo de vida de uma Activity O ciclo de vida compreende início, meio e fim da Activity. Existem três subníveis do ciclo de vida principal durante a execução da aplicação:. entire lifetime;. visible lifetime; e. foreground lifetime. Cada um desses ciclos é iniciado durante a chamada de algum dos métodos que controla o ciclo de vida da aplicação.

Activity

Activity - Ciclo de vida de uma Activity O ciclo de vida compreende início, meio e fim da Activity. entire lifetime:. Ciclo de vida entre o início e o fim da aplicação. Ocorre apenas uma vez.. Ocorre entre as chamadas aos métodos oncreate() e ondestroy().. Importante: Liberação dos recursos alocados durante a aplicação e/ou no método oncreate();

Activity - Ciclo de vida de uma Activity visible lifetime:. Activity pode estar interagindo com o usuário ou parada em segundo plano.. Ocorre entre os métodos onstart() e onstop().. Define a ocorrência de uma chamada cíclica dos métodos: onstart() -> onresume() -> onpause() -> onstop() -> onrestart() -> onstart().. Importante: Métodos onstart() e onstop() são chamados várias vezes durante a execução da aplicação.

Activity - Ciclo de vida de uma Activity foreground lifetime:. Activity está no topo da pilha e interagindo com o usuário.. Ocorre entre os métodos onresume() e onpause().. Activity está interagindo com o usuário quando entre os dois estados acima.. Ex.: Dispositivo colocado em standby.. Recomenda-se que o código colocado nesses dois métodos seja bem leve.

Activity - Ciclo de vida de uma Activity AppNum7 package com.example.appnum7;... import android.widget.textview; public class MainActivity extends Activity { private static final String CATEGORIA = "COMP_MOVEL"; private TextView tview; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); Log.i(CATEGORIA, this.getlocalclassname() + ".oncreate() chamado - bundle = +savedinstancestate); tview = new TextView(this); tview.settext("exemplo do ciclo de vida. Vide logcats!"); setcontentview(tview);

Activity - Ciclo de vida de uma Activity AppNum7 (cont.) @Override protected void onstart() { super.onstart(); Log.i(CATEGORIA,this.getLocalClassName() + ".onstart() chamado!"); @Override protected void onrestart() { super.onrestart(); Log.i(CATEGORIA,this.getLocalClassName() + ".onrestart() chamado!"); @Override protected void onpause() { super.onpause(); Log.i(CATEGORIA,this.getLocalClassName() + ".onpause() chamado!");

Activity - Ciclo de vida de uma Activity AppNum7 (cont.) @Override protected void onresume() { super.onresume(); Log.i(CATEGORIA,this.getLocalClassName() + ".onresume() chamado!"); @Override protected void onstop() { super.onstop(); Log.i(CATEGORIA,this.getLocalClassName() + ".onstop() chamado!"); @Override protected void ondestroy() { super.ondestroy(); Log.i(CATEGORIA,this.getLocalClassName() + ".ondestroy() chamado!"); tview = null;...

Activity - Ciclo de vida de uma Activity Exercícios: 5) Considerando a AppNum7, transformá-la em uma classe pai. Outras activities criadas devem herdar dessa classe pai e automaticamente exibir na tela as mensagens já constantes na AppNum7. 6) Fazer com que as mensagens de mudança de estado sejam exibidas na tela em um componente de texto.

Ciclo de Vida Avançado

Ciclo de Vida Avançado - Preservação do estado da Activity Ao girar a tela do dispositivo o Android vai destruir a Activity atual e recriá-la em seguida. Isso é feito pois é necessário recriar todas as views e aplicar novos espaçamentos e margens adequadas. Durante a troca de orientação (pressionando Ctrl+F11 no emulador), o método onsaveinstancestate() é chamado na Activity relacionada. @Override protected void onsaveinstancestate(bundle outstate) { super.onsaveinstancestate(outstate); Log.i(CATEGORIA, this.getlocalclassname() + ".onsaveinstancestate() - bundle = "+outstate);

Ciclo de Vida Avançado - Preservação do estado da Activity Se o estado da Activity foi salvo no onsaveinstancestate() é passível de ser recuperado quando do recarregamento da Activity. Salvamento e recuperação ocorre de maneira transparente através do argumento (bundle) passado para os métodos onsaveinstancestate() e oncreate(). Na primeira vez que o oncreate() é chamado, bundle será null. Nas próximas, após passar por onsaveinstancestate() terá um valor válido.

Navegação e Criação de Nova Activity

Navegação e Criação de Nova Activity - Até agora trabalhamos somente com uma Activity. - Aplicativos mais complexos possuem dezenas de activities. - Necessário considerar o fluxo de navegação entre essas várias activities. - Importante: Para cada nova tela, uma nova Activity. - Inicialização de novas activities: startactivity(); e startactivityforresult().

Navegação e Criação de Nova Activity - Inicialização de novas activities: startactivity(). Inicia a Activity passada como parâmetro sem que no futuro haja qualquer vínculo com a mesma. startactivityforresult(). Inicia a Activity passada como parâmetro;. Recebe um parâmetro que identifica essa chamada;. No futuro, Activity chamadora consegue recuperar valores da activity chamada. Ambas recebem um objeto da classe android.content.intent como parâmetro.

Navegação e Criação de Nova Activity - Criação de novas activities: É possível se criar novas activities de forma estática ou dinâmica. A criação de forma estática pode ser feita através do próprio menu de opções do Android Studio.

Navegação e Criação de Nova Activity - Inicialização de novas activities: Exemplo: AppNum8 - Criação de várias activities.. DebugActivity.java... public class DebugActivity extends Activity { protected static final String TAG = "COMP_MOVEL"; protected void oncreate(bundle icicle) { super.oncreate(icicle); Log.i(TAG, getclassname() + ".oncreate() chamado: " + icicle); protected void onstart() { super.onstart(); Log.i(TAG, getclassname() + ".onstart() chamado."); protected void onrestart() { super.onrestart(); Log.i(TAG, getclassname() + ".onrestart() chamado."); @Override protected void onsaveinstancestate(bundle outstate) { protected void onresume() { super.onsaveinstancestate(outstate); super.onresume(); Log.i(TAG, getclassname() + ".onsaveinstancestate() chamado."); Log.i(TAG, getclassname() + ".onresume() chamado."); protected void onstop() { protected void onpause() { super.onstop(); super.onpause(); Log.i(TAG, getclassname() + ".onstop() chamado."); Log.i(TAG, getclassname() + ".onpause() chamado."); protected void ondestroy() { super.ondestroy(); Log.i(TAG, getclassname() + ".ondestroy() chamado."); private String getclassname() { // Retorna o nome da classe sem o pacote String s = getclass().getname(); return s.substring(s.lastindexof("."));...

Navegação e Criação de Nova Activity - Inicialização de novas activities: Exemplo: AppNum8 - Criação de várias activities.. MainActivity.java public class MainActivity extends DebugActivity { @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); Button btlogin = (Button) findviewbyid(r.id.btlogin); btlogin.setonclicklistener(onclicklogin()); private View.OnClickListener onclicklogin() { return new View.OnClickListener() { @Override public void onclick(view v) { TextView tlogin = (TextView) findviewbyid(r.id.tlogin); TextView tsenha = (TextView) findviewbyid(r.id.tsenha); String login = tlogin.gettext().tostring(); String senha = tsenha.gettext().tostring(); ; if("vicente".equals(login) && "123456".equals(senha)) { // Navega para a próxima tela Intent intent = new Intent(getContext(),BemVindoActivity.class); Bundle params = new Bundle(); params.putstring("nome", "Vicente Amorim"); intent.putextras(params); startactivity(intent); else { alert("login e senha incorretos.");

Navegação e Criação de Nova Activity - Inicialização de novas activities: Exemplo: AppNum8 - Criação de várias activities.. BemVindoActivity.java public class BemVindoActivity extends DebugActivity { @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_bem_vindo); Bundle args = getintent().getextras(); String nome = args.getstring("nome"); TextView text = (TextView) findviewbyid(r.id.text); text.settext(nome + ", seja bem vindo."); // Adiciona o botão "up navigation" getactionbar().setdisplayhomeasupenabled(true);

Navegação e Criação de Nova Activity - Inicialização de novas activities: Exemplo: AppNum8 - Criação de várias activities.. AndroidManifest.xml <application android:allowbackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="com.cea436.appnum8.mainactivity" android:label="@string/title_main_activity" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name=".bemvindoactivity" android:label="@string/title_bem_vindo_activity" android:parentactivityname="com.cea436.appnum8.mainactivity" > <!-- Parent activity meta-data to support API level 7+ --> <meta-data android:name="android.support.parent_activity" android:value="com.cea436.appnum8.mainactivity" /> </activity> </application>

Navegação e Criação de Nova Activity - Inicialização de novas activities: Exemplo: AppNum8 - Tela 1

Navegação e Criação de Nova Activity - Inicialização de novas activities: Exemplo: AppNum8 - Tela 2

Navegação e Criação de Nova Activity - Inicialização de novas activities: Uma Activity na tela também alterará seu comportamento quando do recebimento de eventos externos. Por exemplo, uma ligação de um contato qualquer fará com que o estado da aplicação corrente se altere. Emulando uma ligação:

Navegação e Criação de Nova Activity - Inicialização de novas activities: Uma atividade que fornecerá algum retorno deve ser iniciada com a chamada startactivityforresult(<intent>,<request_code>). Obtenção dos resultados de outras atividades se baseia em uma chave. Ao final da execução, callback onactivityresult(...) é chamado na primeira atividade. request_code enviado anteriormente deve ser comparado no onactivityresult(...) para se ter a noção se é o tipo de valor esperado.

Navegação e Criação de Nova Activity - Inicialização de novas activities: Exemplo: AppNum9 - Criação de várias activities (obtendo resultado).. MainActivity.java public class MainActivity extends Activity { TextView textview1; Button button1; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); textview1 = (TextView)findViewById(R.id.textView1); button1 = (Button)findViewById(R.id.button1); button1.setonclicklistener(new OnClickListener() { @Override public void onclick(view arg0) { Intent intent=new Intent(MainActivity.this,SecondActivity.class); startactivityforresult(intent, 2);// Activity com requestcode = 2 );

Navegação e Criação de Nova Activity - Inicialização de novas activities: Exemplo: AppNum9 - Criação de várias activities (obtendo resultado).. MainActivity.java (cont.) //Callback da segunda atividade para a primeira @Override protected void onactivityresult(int requestcode, int resultcode, Intent data) { super.onactivityresult(requestcode, resultcode, data); //Verifica se o requestcode recebido é o mesmo que o enviado if(requestcode == 2) { String message = data.getstringextra("message"); textview1.settext(message); @Override public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.main, menu); return true;

Navegação e Criação de Nova Activity - Inicialização de novas activities: Exemplo: AppNum9 - Criação de várias activities (obtendo resultado).. SecondActivity.java public class SecondActivity extends Activity { EditText edittext1; Button button1; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.second_main); edittext1 = (EditText)findViewById(R.id.editText1); button1 = (Button)findViewById(R.id.button1); button1.setonclicklistener(new OnClickListener() { @Override public void onclick(view arg0) { String message = edittext1.gettext().tostring(); Intent intent = new Intent(); intent.putextra("message",message); setresult(2,intent); finish();//terminando a activity );

Navegação e Criação de Nova Activity - Inicialização de novas activities: Exemplo: AppNum9

Navegação e Criação de Nova Activity - Inicialização de novas activities: Exemplo: AppNum9

Navegação e Criação de Nova Activity - Inicialização de novas activities: Exemplo: AppNum9

Navegação e Criação de Nova Activity - Passagem de parâmetros para uma nova Activity: Exemplo: AppNum10.. Informação a ser passada para uma próxima Activity precisa ser encapsulada dentro de um objeto do tipo android.os.bundle.. Os dados passados estão sempre em um formato de tabela hash.. Ex.: Função que coloca uma String no bundle recebe como parâmetros uma chave e um valor: putstring(chave, valor);. Para cada tipo de dado existe uma função put diferente: putboolean(), putchar(), putbytearray(), putshort(), putint(), putlong(), putfloat(), putdouble(), etc.

Navegação e Criação de Nova Activity - Passagem de parâmetros para uma nova Activity: Exemplo: AppNum10. MainActivity.java if("vicente".equals(login) && "123456".equals(senha)) { Intent intent = new Intent(getContext(),BemVindoActivity.class); Bundle params = new Bundle(); params.putstring("nome", "Vicente Amorim"); intent.putextras(params); startactivity(intent); else { alert("login e senha incorretos."); BemVindoActivity.java protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_bem_vindo); String nome = null; Intent it = getintent(); if (it!= null) { Bundle args = it.getextras(); nome = args.getstring("nome"); TextView text = (TextView) findviewbyid(r.id.text); text.settext(nome + ", seja bem vindo."); // Adiciona o botão "up navigation" getactionbar().setdisplayhomeasupenabled(true);

Navegação e Criação de Nova Activity - Passagem de parâmetros para uma nova Activity: Exemplo: AppNum10. 1) Método getintent() é chamado para recuperar a Intent utilizada para chamar essa nova activity. 2) Também, necessário validar se o retorno do método getintent() é válido, i.e., diferente de null. 3) Através da Intent consegue-se recuperar o Bundle com as informações passadas pela activity anterior: getextras() 4) Recupera-se o dado à partir do método get específico. No nosso caso: getstring(chave).

Navegação e Criação de Nova Activity - Passagem de parâmetros para uma nova Activity: Exemplo: AppNum10.. Para cada tipo de dado existe uma função get diferente: getboolean(), getchar(), getbytearray(), getshort(), getint(), getlong(), getfloat(), getdouble(), etc.. Classe android.content.intent é utilizada basicamente para o envio de parâmetros entre duas activities.

Navegação e Criação de Nova Activity - Passagem de parâmetros para uma nova Activity: (simplificação) Exemplo: AppNum11. public class ExemploCicloVidaAbrirTela extends ExemploCicloVida implements OnClickListener {... @Override public void onclick(view arg0) { Intent it = new Intent(this,ExemploTela2.class); it.putextra("msg","olá comp movel"); startactivity(it);...

Navegação e Criação de Nova Activity - Passagem de parâmetros para uma nova Activity: (simplificação) Exemplo: AppNum11. getintextra(), getlongextra(), getbooleanextra(), etc... public class ExemploTela2 extends ExemploCicloVida { @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); TextView view = new TextView(this); view.settext("tela 2!"); setcontentview(view); Intent it = getintent(); if (it!= null) { String msg = it.getstringextra("msg"); if (msg!= null) { Log.i(CATEGORIA,"Mensagem : " + msg);

ActionBar e Navegação Para Tela Anterior

ActionBar e Navegação Para a Tela Anterior - Na aplicação, pode-se voltar para a Activity anterior através do botão físico do dispositivo ou à partir do botão voltar na Actionbar. - Para adicionar o indicador de voltar na ActionBar, basta utilizar o método getactionbar().setdisplayhomeasupenabled(true). - Exemplo: AppNum12 @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_bem_vindo); BemVindoActivity.java Bundle args = getintent().getextras(); String nome = args.getstring("nome"); TextView text = (TextView) findviewbyid(r.id.text); text.settext(nome + ", seja bem vindo."); // Adiciona o botão "up navigation" getactionbar().setdisplayhomeasupenabled(true); public boolean onoptionsitemselected(menuitem item) { int id = item.getitemid(); if(id == android.r.id.home) { // O método finish() vai encerrar essa activity finish(); return true; return super.onoptionsitemselected(item);

Exercícios 7) Extender o aplicativo de Login criando na segunda Activity - se ainda não tiver feito o cadastro - um formulário para o usuário completar os dados pessoais (nome completo, endereço, e-mail, telefone, etc). 8) Caso usuário já tenha efetuado o cadastro dos dados completos: Apresentar dois botões na segunda Activity: - Botão 1 (Alterar dados pessoais): Leva a uma Activity para alterar os dados; - Botão 2 (Visualizar dados pessoais): Leva a uma Activity para visualizar todos os dados pessoais.