minicurso pet-ee ufrnpetee.ct.ufrn.br/wp-content/uploads/2015/05/lição-2-nova...exemplo: fazer...

17
Minicurso PET-EE UFRN AULA 3

Upload: doquynh

Post on 28-Sep-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

Minicurso PET-EE UFRN

AULA 3

Page 2: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

Nesta aula iremos continuar o exemplo anterior criando uma nova activity e adicionando ao botão um método que irá iniciar a mesma.

Page 3: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

Começaremos criando o método de envio do botão

1. No Android Studio no diretório res/layout edite o arquivo

activity_my.xml.

2. Adicione ao elemento <Button> o atributo android:onClick vinculado ao método "sendMessage".

3. No diretório java/com.mycompany.myfirstapp, abra o arquivo MyActivity.java.

Page 4: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

4. Crie um método no interior da classe MyActivity que representará a função "sendMessage()"

public void sendMessage (View view) { }

Para o método ser assignado ao atributo android:onClick o nome dado ao método precisa ter o mesmo nome passado ao atributo e, especificamente, o mesmo precisa:

• Ser public; • Ter valor de retorno void; • Ter view como único parâmetro de entrada.

Page 5: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

Agora precisamos preencher o método criado para envio da mensagem. Sabemos que no sistema Android necessitaremos de um Intent para alternar entre os componentes de seu app; aqui criaremos um.

1. Em MyActivity.java, dentro do método "sendMessage()",

crie um Intent para iniciar uma activity chamada DisplayMessageActivity.

Intent intent = new Intent (this, DisplayMessageActivity.class);

nota: um erro pode aparecer no Android Studio pois a activity em questão ainda não foi criada, nesse caso basta ignorá-lo.

Page 6: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

◦ O construtor usado aqui recebe dois parâmetros: O contexto como primeiro parâmetro (porque Activity é

subclasse de Context)

A classe do componente ao qual o sistema deve entregar o intent.

2. No inicio do arquivo, importe a classe Intent.

3. Dentro do método sendMessage() use findViewById() para acessar o elemento EditText.

EditText editText = (EditText) findViewById(R.id.edit_message);

Page 7: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

4. Claro, não se esqueça de importar a classe EditText no topo do

arquivo.

5. Atribua o texto à uma variável local (nesse caso "message"), e

utilize o método putExtra() para adicionar seu valor de texto ao intent.

String message = editText.getText().toString(); intent.putExtra(EXTRA_MESSAGE, message);

Page 8: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

Um Intent pode carregar tipos de dados como pares de valores-chave chamados extras. O método putExtra() recebe o nome da chave como primeiro parâmetro e o valor como segundo.

◦ 6. No topo da classe MyActivity adicione "EXTRA_MESSAGE"

da forma:

public final static String EXTRA_MESSAGE = "com.mycompany.myfirstapp.MESSAGE"

ATENÇÃO: O nome do extra deve conter o prefixo do pacote ao qual está vinculado.

Page 9: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

7. No método "sendMessage()", para completar o Intent, chame o método startActivity() passando o Intent criado no primeiro passo.

Exemplo: Fazer calculadora Android.

startActivity(intent);

Page 10: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

O Android Studio já inclui os templates para o método onCreate() quando você cria uma nova activity. Podemos criar a activity automaticamente da seguinte forma:

1. No Android Studio, no diretório java, selecone o pacote

com.mycompany.myfirstapp, clique com o botão direito e selecione New > Activity > Blank Activity.

Page 11: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

2. Na janela Choose options, preencha com os detalhes da activity:

Nome da Activity: DisplayMessageActivity (nesse caso o nome passado por você ao criar o Intent)

Nome do Layout: activity_display_message

Título: My Message

Hierarquia parental: com.mycompany.myfirstapp.MyActivity

Nome do Pacote: com.mycompany.myfirstapp

Clique finish.

Page 12: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

3. Abra o arquivo DisplayMessageActivity.java. A classe já possui a implementação do método onCreate() requerido, iremos modificá-lo depois.

4. Remova o método onCreateOptionsMenu(), não será necessário nessa tela.

Agora iremos modificar a activity criada.

Page 13: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

Toda e qualquer activity é chamada por um intent, independente de como o usuário navegou até lá. Os dados do mesmo pode ser acessados através do método "getIntent()".

1. No diretório java/com.mycompany.myfirstapp, edite o

arquivo DisplayMessageActivity.java.

2. No método onCreate(), remova a seguinte linha:

setContentView(R.layout.activity_display_message);

Page 14: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

3. Receba o intent e atribua à uma variável local

4. Importe a classe Intent no topo do arquivo.

5. Extraia a mensagem entregue por MyActivity com o método getStringExtra().

Intent intent = getIntent();

String message = intent.getStringExtra(MyActivity.EXTRA_MESSAGE);

Page 15: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

1. Dentro do método "onCreate()", crie um objeto TextView.

2. Defina o tamanho do texto e a mensagem

TextView textView = new TextView(this);

textView.setTextSize(40); textView.setText(message);

Page 16: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

3. Então adicione o TextView raiz do layout da activity passando o mesmo para "setContentView()".

4. Importe as bibliotecas necessárias.

Agora rode seu aplicativo e veja se está tudo OK!

setContentView(textView);

Page 17: Minicurso PET-EE UFRNpetee.ct.ufrn.br/wp-content/uploads/2015/05/Lição-2-Nova...Exemplo: Fazer calculadora Android. (intent); O Android Studio já inclui os templates para o método

Realização: PET Engenharia Elétrica UFRN

Autor: Rafael Cardoso Pereira

Contatos: Email: [email protected] Tel: 3215-3909