Programação para Dispositivos Móveis -...

42
Programação para Dispositivos Móveis Professor Ariel da Silva Dias Desenvolvendo para Android Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Transcript of Programação para Dispositivos Móveis -...

Page 1: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Programação para Dispositivos MóveisProfessor Ariel da Silva DiasDesenvolvendo para Android

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 2: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Android Core

▪ Uma aplicação Android é formada por um conjunto de componentes;

▪ A este conjunto damos o nome de Android Core.

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Activity

Broadcast Receiver

AndroidManifest

Service

ContentProvider

Page 3: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Android Manifest

▪ O AndoidManifest.xml é um arquivo que apresenta informações essenciais sobreo aplicativo android;

▪ Este é um arquivo que necessariamente tem que ter em todo aplicativo;

▪ As informações contidas neste arquivo são necessárias para que o sistema possaexecutar o código do aplicativo.

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 4: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Android Manifest

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.rally.cya.aula3">

<application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:roundIcon="@mipmap/ic_launcher_round"

android:supportsRtl="true"

android:theme="@style/AppTheme">

<activity android:name=".Activity1">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity android:name=".Activity2"></activity>

</application>

</manifest>

Page 5: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Permissões de Acesso

▪ Para realizar determinados tipos de operações, a aplicação deve solicitar permissão

▪ As permissões são configuradas no AndroidManifest.xml

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 6: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Activity

▪ Uma Activity representa uma tela da aplicação

▪ Representada por uma classe que herda de Activity

▪ Quase todas as activities interagem com o usuário, portanto, a classe Activitycuida da criação de uma janela na qual você pode colocar sua interface comsetContentView (View)

▪ As Activities no sistema são gerenciadas como uma pilha de activities. Quandouma nova Activity é iniciada, ela é colocada no topo da pilha e se torna a Activityem execução - a Activity anterior permanece sempre abaixo dela na pilha e nãovoltará ao primeiro plano até que a nova Activity saia.

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 7: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Activity

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

public class Activity3 extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_3);

}

}

Page 8: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Pilha de Activities

Sistema Operacional Android

Aplicações

Aplicação 1 Aplicação 2 Aplicação n

Activity 1 Activity 1 Activity 1

Activity 2 Activity 2 Activity 2

Activity 3 Activity 3

Activity 4

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 9: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Classe Context

▪ Representa o contexto de execução da aplicação do Android

▪ Possui muitos métodos que são comumente chamados em aplicações

▪ Um objeto desta classe está normalmente disponível em vários lugares daaplicação

▪ A classe Activity herda de Context

▪ O Context é fornecido como parâmetro

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 10: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Classe Context

▪ O Android tem basicamente dois tipos de contextos

▪ Contexto da activity

▪ Cada activity da aplicação tem um contexto

▪ Contexto da aplicação

▪ É único para a aplicação toda

▪ É preciso tomar cuidado na escolha do contexto para não causar memory leaksna aplicação (vazamento de memória)

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 11: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Classe Context

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

public class Activity3 extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_3);

EditText caixaTexto = new EditText(this);

EditText entradaDados = new EditText(getApplicationContext());

}

}

Page 12: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Views

▪ Views são os componentes que se agrupam para montar a interface gráfica

▪ As activities e as views têm uma relação próxima

▪ Activities representam a tela

▪ Views representam o que é renderizado na tela

▪ O método setContentView() da activity é utilizado para determinar qual viewserá renderizada

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 13: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Views

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

▪ Neste exemplo, setContentView renderiza a view R.layout.activity_3

public class Activity3 extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_3);

}

}

Page 14: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Métodos durante o ciclo de vida de uma activity

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 15: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Métodos durante o ciclo de vida de uma activity

▪ OnCreate()- Primeira método a ser executado quando a Activity é iniciada. Responsável por carregar os layouts XML e outras operações de inicialização. Executado apenas uma vez durante o ciclo de vida.

▪ OnStart()- Chamada logo após o OnCreate() terminar – e também quando uma Activityque estava em background volta a possuir foco.

▪ OnResume() - Chamado na inicialização da Activity (após OnStart()) e também quando uma Activity volta a possuir foco e esta pronta para interagir com o usuário;

▪ OnPause() - Primeira método invocado quando a Activity perde o foco (quando outra Activity vem à frente) e vai para segundo plano;

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 16: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Métodos durante o ciclo de vida de uma activity

▪ OnStop() – Chamado quando a Activity fica totalmente encoberta por outraActivity e não é mais visível pelo usuário

▪ OnDestroy() - Último método chamado antes de destruir e remover a atividadeda memória. Após ele, a Activity é considerada “morta” – isto é, não pode maisser relançada. Se o usuário voltar a solicitar essa Activity, outro objeto será

construído.

▪ OnRestart() - Chamado antes da OnStart(), quando uma Activity volta a ter o focodepois de estar em background.

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 17: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Métodos durante o clico de vida de uma activity

onCreate()

onStart()

onResume() onPause()

onStop()

onDestroy()onRestart()

Foreground Lifetime

Visible Lifetime

Entire Lifetime

Executando

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 18: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Invocando Activities

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

▪ Uma aplicação é composta por um conjunto de activities

▪ Para enviarmos objetos/conteúdo de uma activity para outra, utilizamos as intents

▪ Um objeto intent é usado para disparar uma nova activity

▪ O primeiro parâmetro refere-se a activity que está invocando, enquanto o segundorefere-se a activity invocada (no nosso caso, respectivamente Activity1 aqui representadapor this e Activity2)

▪ O método StartActivity é usado para iniciar uma nova activity, que será colocada no topoda pilha de activities. É preciso um único argumento, uma Intent , que descreve aatividade a ser executada.

Intent it = new Intent(this,Activity2.class);

startActivity(it);

Page 19: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Invocando Activities

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

▪ As intents permitem iniciar uma activity em outro aplicativo, fornecendo umaação simples a ser executada em um objeto Intent.

▪ Esse tipo de intente chamamos de “intent implícito” pois não especifica ocomponente do aplicativo a iniciar. Em vez disso, ela especifica uma ação quefornece alguns dados com os quais realizar a ação.

▪ Ao chamar startActivity() e passar um intent implícito, o sistema resolve a intentpara um aplicativo que pode processar a intent e inicia a Activity correspondente.

▪ Se há mais de um aplicativo que pode processar a intent, o sistema apresenta aousuário uma caixa de diálogo para escolher o aplicativo a usar.

Page 20: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Passagem de Parâmetros

Activity1.java Activity2.java

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

▪ O bundle é uma espécie de struct emC, responsável por armazenar osvalores a serem transferidos para aActivity 2;

▪ O primeiro parâmetro é uma chave deidentificação e o segundo é o valor.

public void chamarActivity(View view) {

Intent it = new Intent(this,Activity2.class);

Bundle b = new Bundle();

b.putInt("idade",35);

it.putExtras(b);

startActivity(it);

}

▪ O primeiro passo é pegar a intent queinvocou e atribuir a uma variável domesmo tipo;

▪ Depois, extraímos da intent o bundle eatribuímos a uma variável do mesmotipo;

▪ Por fim, extraímos do bundle o valorenviado, para isso utilizamos a chavede identificação atribuída na Activity1.

Intent it = getIntent();

Bundle b = it.getExtras();

int id = b.getInt("idade");

Page 21: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Salvando o Estado de uma Activity

▪ Uma activity pode ser destruída pelo Android para liberar recursos

▪ Quando ela for recriada, é possível que informações da activity sejam perdidas • Para evitar que isto aconteça, é necessário salvar o estado da activity

▪ Não é preciso se preocupar com o estado das views, pois ele é gravado e depois recuperado

▪ É preciso que a view tenha um ID especificado

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 22: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Salvando o Estado de uma Activity – onSaveInstanceState()

▪ O Android chama o método onSaveInstanceState() na activity quando ela não fica mais visível

▪ Quando a activity é destruída, o estado dela fica guardado

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

@Override

protected void onSaveInstanceState(Bundle b) {

b.putString("nome","José");

b.putInt("idade",50);

b.putDouble("peso",78.2);

/*

CÓDIGO QUALQUER....

*/

super.onSaveInstanceState(b);

}

Page 23: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Salvando o Estado de uma Activity – onRestoreInstanceState()

▪ Quando a activity for recriada, o Android chama o método onCreate() passandocomo parâmetro o bundle que contém os dados salvos

▪ O bundle aqui trabalha como uma memória cache

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity1);

String nome; int num; double p;

if(savedInstanceState != null){

nome = savedInstanceState.getString("nome");

num = savedInstanceState.getInt("idade");

p = savedInstanceState.getDouble("peso");

}

}

Page 24: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Resource

▪ Exemplos de recursos (resources)

▪ Textos

▪ Imagens

▪ Sons

▪ Layouts de tela

▪ O ideal é não referenciar os resources diretamente no código

▪ Repetição de código

▪ Difícil de manter

▪ O Android possui mecanismos para trabalhar com resources de forma fácil e centralizada

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 25: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Resource - String

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 26: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Resource - String

Sem uso de Resource Com uso de Resource

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 27: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Resource - Color

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 28: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Classe Resource

▪ A classe Resource é um recurso do Android para referenciar resources no código

▪ Ela é gerada automaticamente

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Button b = new Button(this);

b.setText(R.string.botao_OK);

Page 29: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Referenciando Resource no XML

▪ Convenção para referenciar Resource

Resource Dentro do Código Dentro do XML

String Resource.string.<nomeResource> @string/<nomeResource>

Color Resource.color.<nomeResource> @color/<nomeResource>

Drawable Resource.drawable.<nomeResource> @drawable/<nomeResource>

... ... ...

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 30: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Arquivo de Layout

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 31: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Relação XML e Java

▪ O arquivo de layout XML não possui relação com o arquivo Java, ou seja,enquanto o primeiro é apenas a interface, o segundo é apenas a parte lógica;

▪ Em XML não conseguimos colocar ação no botão ou codificar os componentes;

▪ Desta forma, quando desejamos capturar o valor de uma EditText e, ao clicar nobotão este valor ser atribuído à uma TextView, devemos utilizar dos recursoscomo ids e o método findViewById.

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 32: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Relação XML e Java

▪ Nos próximos slides, faremos uma aplicação onde o usuário informa o nome emuma EditText e ao clicar no botão o nome será apresentado em uma TextView;

▪ Utilizaremos o LinearLayout por ser mais fácil de se apresentar na tela;

▪ Utilizaremos a seguinte sequência de views no XML:

▪ TextView com texto: “Digite seu nome”

▪ EditText

▪ Button

▪ TextView que será responsável por apresentar o nome da pessoa

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 33: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Definindo as views e seus IDs

▪ Algumas vezes é necessário definir seus próprios IDs para as views, afim dereferenciá-las posteriormente dentro do código java

▪ É recomendado que todas as views possuam um ID

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 34: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Definindo as views e seus IDs

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".Activity1">

<TextView

android:id="@+id/texto1"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<EditText

android:id="@+id/entradaTexto"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<Button

android:id="@+id/botao1"

android:text="@string/botao_OK"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

<TextView

android:id="@+id/apresentaTexto"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

</LinearLayout>

Page 35: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Fazendo cast

▪ O nosso layout está pronto e as views estão na tela

▪ Agora precisamos criar as views no java e, em seguida, atribuir os ids do XMLpara esta variáveis no código fonte

▪ Neste criaremos a relação entre Layout e Lógica (código fonte)

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 36: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Fazendo cast

▪ O nosso layout está pronto e as views estão na tela

▪ Agora precisamos criar as views no java e, em seguida, atribuir os ids do XMLpara esta variáveis no código fonte

▪ Neste criaremos a relação entre Layout e Lógica (código fonte)

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 37: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Fazendo cast

▪ Iremos interagir com apenas 2 views: EditText de entrada de texto e a TextViewpara mostrar a entrada de texto

▪ Desta forma, utilizaremos o método findViewById() para recuperarmos o componente do layout XML e atribuí-lo à variável do tipo correspondente no código fonte

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

TextView mostraResultado;

EditText caixaDeTexto;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity1);

mostraResultado = findViewById(R.id.apresentaTexto);

caixaDeTexto = findViewById(R.id.entradaTexto);

}

Page 38: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Ação para o botão

▪ O nosso botão está sem ação, o próximo passo é criarmos esta ação

▪ No arquivo de layout XML, vá até o botão criado e adicione o atributo onclick

▪ Criamos um método chamado “capturarNome” no atributo onclick, porém ele aparece com um erro

▪ Isso ocorre pois o método ainda não foi criado na classe Java, então:▪ Clique sobre o método capturarNome e, em seguida pressione as teclas alt + enter

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 39: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Ação para o botão

▪ Abrirá um menu com várias opções

▪ Dentre elas, escolha

▪ Create ‘capturarNome(View)’ in ‘Activity1’

▪ Com isso o método será criado automaticamente na classe Activity1.java

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 40: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Codificando o método capturarNome()

▪ Na classe Activity1.java, vamos codificar o método criado anteriormente conforme a imagem abaixo:

▪ Capturamos o valor da EditText chamada caixaDeTexto;

▪ Atribuímos o valor à variável nome do tipo String;

▪ Chamamos o método setText() da TextView mostraResultado e atribuímos o valor da variável nome;

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

public void capturarNome(View view) {

String nome;

nome = caixaDeTexto.getText().toString();

mostraResultado.setText(nome.toString());

}

Page 41: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Atividade

▪ Veja as atividades propostas no site www.arieldias.com

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 42: Programação para Dispositivos Móveis - arieldias.comarieldias.com/material/2018-2/PDM/Aula2.pdf · Desenvolvendo para Android Professor Ariel da Silva Dias - - Obra Gratuita, proibida

Referências

▪ Documentação Xamarin. Disponível em: https://docs.microsoft.com/pt-br/xamarin/. Acessado em: agosto/2018

▪ Documentação Android. Disponível em: https://developer.android.com/.Acessado em agosto/2018

▪ Lecheta, Ricardo. Android Essencial. Editora Novatec, 2016

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda