Você está na página 1de 7

AULA ATIVIDADE TUTOR

AULA
ATIVIDADE
TUTOR
AULA ATIVIDADE TUTOR

Disciplina: Desenvolvimento Mobile


Teleaula: 02

Atividade 1:
Nesta aula aprendemos como utilizar um Intent para transacionar entre várias telas
(Activities) de uma mesma aplicação. Este é o chamado Intent Explícito, e normalmente
o utilizamos para iniciar um componente no próprio aplicativo porque se sabe o nome
de classe da atividade ou do serviço exato que se quer iniciar.

Mas também há os Intents Implícitos, que não nomeiam nenhum componente


específico, mas declaram uma ação geral a realizar, o que permite que um componente
de outro aplicativo a processe. Por exemplo, se você quiser exibir ao usuário uma
localização em um mapa, pode usar um intent implícito para solicitar que outro
aplicativo capaz exiba uma localização especificada no mapa. E é com este tipo de intent
que você irá trabalhar nesta atividade, e por isso, disponibilizo sua documentação para
auxílio:

Intents e Filtros de Intents

https://developer.android.com/guide/components/intents-filters?hl=pt-br (Acesso em
30/05/2023)

Esta atividade deve ser realizada com base no aplicativo de Faturamento desenvolvido
na aula.

Modifique o aplicativo adicionando um terceiro botão na interface chamado de “Enviar


e-mail”. A ideia aqui é que ao clicar no botão, o app deve chamar o aplicativo padrão de
e-mail do dispositivo e preencher alguns campos com informações extraídas do App. A
ideia aqui é simular um possível envio de informações presentes no app para um
terceiro. Esta ação deve ser implementada utilizando um intente explícito associado ao
novo botão, que deve preencher automaticamente o assunto do e-mail com algum texto
(por exemplo: “faturamento”) e também o corpo do e-mail com todos os dados de ano
e valor armazenados nas preferências compartilhadas, conforme a figura a seguir:
AULA ATIVIDADE TUTOR

(A) (B)

Figura 1 – (A) Tela do aplicativo faturamento. (B) Tela do app de e-mail com as informações
extraídas do app já preenchidas automaticamente pelo intent.

OBS: A resolução desta atividade também pode ser feita sem o código do aplicativo
desenvolvido na aula, caso não o tenha implementado ainda. Neste caso, basta que
implemente uma nova aplicação que apenas faz o uso correto de um Intent implícito
como solicitado na atividade (um botão que chama o app de e-mail padrão e preenche
com informações contidas na aplicação que você desenvolveu).

ORIENTAÇÕES PARA CORREÇÃO:

Prezado(a) Tutor(a),

Seguem as partes do código que devem ser implementadas:


AULA ATIVIDADE TUTOR

Código XML da implementação do novo botão:


<Button
android:id="@+id/buttonEmail"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:backgroundTint="#2196F3"
android:text="Enviar e-mail"
android:textSize="16sp"
app:iconPadding="8sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button3"

Este método é implementado dentro da MainActivity e é responsável por acessar as


informações do arquivo de SharedPreferences e construir a mensagem que será
preenchida no corpo do e-mail.
private String construirMensagem(){
String year;
String msg = "Descritivo anual: \n\n";

SharedPreferences sharedPreferences =
getSharedPreferences(ARQUIVO_MEUS_DADOS,
Context.MODE_PRIVATE);

for(int i=2015; i<=2030; i++){


year = Integer.toString(i);
float saldo = sharedPreferences.getFloat(String.valueOf(year),
0);
msg += String.format("%s: R$ %f\n", year, saldo);
}

Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();

return msg;
}

Já este método, implementado dentro do onCreate() da MainActivity, associa o novo


botão a um Listener que cria e ativa o Intent:
mButtonEmail = findViewById(R.id.buttonEmail);

mButtonEmail.setOnClickListener(new View.OnClickListener() {
@Override
AULA ATIVIDADE TUTOR

public void onClick(View view) {


Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:")); // only email apps
should handle this
intent.putExtra(Intent.EXTRA_SUBJECT, "faturamento");
intent.putExtra(Intent.EXTRA_TEXT, construirMensagem());
startActivity(intent);
}
});

Atividade 2:

Responda às seguintes questões:

1) (Prova: CESGRANRIO - 2023 - Banco do Brasil - Agente de Tecnologia - Microrregião


158 - TI) Durante o desenvolvimento de uma aplicação mobile em Java para Android,
um programador detectou a necessidade de alterar o texto de um widget da classe
TextView, chamado resultado, para "Sucesso!".

Para realizar essa ação, esse programador deve usar o seguinte fragmento de código:

a) TextView resultado = "Sucesso!";


b) resultado := "Sucesso!";
c) resultado.setValue("Sucesso!");
d) resultado.setText("Sucesso!");
e) resultado = TextView.setValue("Sucesso!");

2) (Adaptado de: Prova: IF Sul Rio-Grandense - 2021 - IF Sul Rio-Grandense - Professor -


Informação e Comunicação) No Android, existem diversos tipos de gerenciadores de
layout. Alguns podem organizar os componentes na horizontal e vertical, outros podem
organizar os componentes em uma tabela com linhas e colunas.

Sobre as classes de layout, afirma-se que

a) FrameLayout é utilizado para organizar os componentes na vertical e horizontal.


b) LinearLayout funciona como uma pilha, sendo que uma view fica por cima da
outra.
c) RelativeLayout permite posicionar um componente relativo a outro, por
exemplo, abaixo de um componente já existente.
d) ConstraintLayout é o tipo mais comum e simples de layout. Pode ser utilizado
para organizar os componentes em uma tabela, com linhas e colunas.
AULA ATIVIDADE TUTOR

3) (Prova: IDECAN - 2020 - IF-RR - Informática) Sobre o desenvolvimento de aplicativos


móveis com Android utilizando a linguagem Java, analise as afirmativas a seguir.

I. Uma Activity, dentre outras funcionalidades, é responsável por criar uma tela onde é
exibida a interface gráfica em um aplicativo Android.

II. Considerando o ciclo de vida de uma Activity, o método onCreate(Bundle


savedInstanceState) é chamado quando a Activity é criada.

III. É possível passar informações de uma tela para outra (de uma Activity para outra)
através de objetos da classe Intent.

Assinale

a) se todas as alternativas estiverem corretas.


b) se somente a alternativa II estiver correta
c) se somente as alternativas I e II estiverem corretas.
d) se somente a alternativa I estiver correta.
e) se nenhuma das alternativas estiver correta.

4) (Prova: INSTITUTO AOCP - 2018 - PRODEB - Especialista de TIC - Construção de


Software) De acordo com a programação de dispositivos móveis para android, uma
estrutura bastante importante é denominada de Intent. Com base nisso, qual definição
se aplica ao conceito de um Intent?

a) É um componente responsável por apresentar as telas para os usuários da


aplicação.
b) É um objeto responsável pelo repasse de informações para os principais
componentes da API do Android.
c) É um tipo de estrutura para armazenamento que utiliza um valor indicado
principalmente por configurações.
d) É um banco de dados privado que é utilizado pela memória do telefone ao qual
o aplicativo está instalado.
e) É um banco de dados simples, que devido à sua estrutura consome poucos
recursos e por isso é comumente utilizado em dispositivos embarcados.

ORIENTAÇÕES PARA CORREÇÃO:

Prezado(a) tutor(a),

Segue as respostas das questões:


AULA ATIVIDADE TUTOR

1) D

2) C

3) A

4) B

Bons estudos!
Prof. Dr. Gilberto Fernandes Jr.

Você também pode gostar