Buscar

AVA1 - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução
A aplicação foi criada com o fim de calcular a média aritmética entre as notas das avaliações A1, A2 e A3 de determinada disciplina devolvendo o conceito final. Consiste em uma única tela contendo seis elementos onde o usuário pode de maneira simples calcular sua média final para uma disciplina, informando as notas obtidas nas avaliações.
Os campos para entrada das notas são obrigatórios, sendo assim, se algum campo estiver vazio, o cálculo não será realizado.
A aplicação foi desenvolvida a partir da IDE Android Studio utilizando a linguagem de programação Java, que é hoje uma das linguagens mais utilizadas em todo o mundo na criação de aplicações para os mais diversos tipos de dispositivos.
Código XML da tela (View):
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".MainActivity">
 <TextView
 android:id="@+id/averageResult"
 android:layout_width="166dp"
 android:layout_height="131dp"
 android:layout_marginStart="123dp"
 android:layout_marginTop="62dp"
 android:layout_marginEnd="122dp"
 android:layout_marginBottom="32dp"
 android:gravity="center"
 android:text="0.0"
 android:textColor="#808080"
 android:textSize="96sp"
 app:layout_constraintBottom_toTopOf="@+id/inputGrade1"
 app:layout_constraintEnd_toEndOf="parent"
 app:layout_constraintStart_toStartOf="parent"
 app:layout_constraintTop_toTopOf="parent" />
 <Button
 android:id="@+id/calcButton"
 android:layout_width="325dp"
 android:layout_height="48dp"
 android:layout_marginStart="43dp"
 android:layout_marginTop="100dp"
 android:layout_marginEnd="43dp"
 android:onClick="averageCalculate"
 android:text="Calcular"
 app:layout_constraintEnd_toEndOf="parent"
 app:layout_constraintStart_toStartOf="parent"
 app:layout_constraintTop_toBottomOf="@+id/inputGrade3" />
 <Button
 android:id="@+id/calcButton2"
 android:layout_width="325dp"
 android:layout_height="48dp"
 android:layout_marginStart="43dp"
 android:layout_marginTop="16dp"
 android:layout_marginEnd="43dp"
 android:layout_marginBottom="69dp"
 android:onClick="resetInputs"
 android:text="Novo calculo"
 app:layout_constraintBottom_toBottomOf="parent"
 app:layout_constraintEnd_toEndOf="parent"
 app:layout_constraintStart_toStartOf="parent"
 app:layout_constraintTop_toBottomOf="@+id/calcButton" />
 <EditText
 android:id="@+id/inputGrade1"
 android:layout_width="236dp"
 android:layout_height="48dp"
 android:layout_marginStart="88dp"
 android:layout_marginTop="32dp"
 android:layout_marginEnd="87dp"
 android:layout_marginBottom="16dp"
 android:ems="10"
 android:hint="Nota A1"
 android:inputType="numberDecimal"
 app:layout_constraintBottom_toTopOf="@+id/inputGrade2"
 app:layout_constraintEnd_toEndOf="parent"
 app:layout_constraintStart_toStartOf="parent"
 app:layout_constraintTop_toBottomOf="@+id/averageResult" />
 <EditText
 android:id="@+id/inputGrade2"
 android:layout_width="236dp"
 android:layout_height="48dp"
 android:layout_marginStart="88dp"
 android:layout_marginTop="16dp"
 android:layout_marginEnd="87dp"
 android:layout_marginBottom="16dp"
 android:ems="10"
 android:hint="Nota A2"
 android:inputType="numberDecimal"
 app:layout_constraintBottom_toTopOf="@+id/inputGrade3"
 app:layout_constraintEnd_toEndOf="parent"
 app:layout_constraintHorizontal_bias="0.0"
 app:layout_constraintStart_toStartOf="parent"
 app:layout_constraintTop_toBottomOf="@+id/inputGrade1" />
 <EditText
 android:id="@+id/inputGrade3"
 android:layout_width="236dp"
 android:layout_height="48dp"
 android:layout_marginStart="88dp"
 android:layout_marginTop="16dp"
 android:layout_marginEnd="87dp"
 android:layout_marginBottom="100dp"
 android:ems="10"
 android:hint="Nota A3"
 android:inputType="numberDecimal"
 app:layout_constraintBottom_toTopOf="@+id/calcButton"
 app:layout_constraintEnd_toEndOf="parent"
 app:layout_constraintStart_toStartOf="parent"
 app:layout_constraintTop_toBottomOf="@+id/inputGrade2" />
</androidx.constraintlayout.widget.ConstraintLayout>
Tela da aplicação:
Código Java implementado na aplicação:
package com.uva.ppdm.averageapplication;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
 }
 /**
 * Contém toda a lógica para o cálculo da média.
 * @param view
 */
 public void averageCalculate(View view){
 TextView textView = findViewById(R.id.averageResult);
 EditText input1 = findViewById(R.id.inputGrade1);
 EditText input2 = findViewById(R.id.inputGrade2);
 EditText input3 = findViewById(R.id.inputGrade3);
 /**
 * Se algum campo estiver vazio, o cálculo não é possível,
 * portanto, mostra uma mensagem de alerta.
 * Caso contrário, realiza o cálculo normalmente.
 */
 if (isEmpty(input1) || isEmpty(input2) || isEmpty(input3)) {
 AlertDialog.Builder builder1 = new AlertDialog.Builder(this);
 builder1.setMessage("Os campos A1, A2 e A3 são obrigatórios.");
 builder1.setCancelable(true);
 builder1.setPositiveButton(
 "OK",
 new DialogInterface.OnClickListener() {
 public void onClick(DialogInterface dialog, int id) {
 dialog.cancel();
 }
 });
 AlertDialog alert11 = builder1.create();
 alert11.show();
 } else {
 float a1 = Float.parseFloat(String.valueOf(input1.getText()));
 float a2 = Float.parseFloat(String.valueOf(input2.getText()));
 float a3 = Float.parseFloat(String.valueOf(input3.getText()));
 float calcTemp = (a1 + a2 + a3) / 3;
 textView.setText(String.valueOf(calcTemp));
 if (calcTemp < 6) {
 textView.setTextColor(Color.parseColor("#FF0000"));
 } else if (calcTemp >= 6) {
 textView.setTextColor(Color.parseColor("#008000"));
 }
 }
 }
 /**
 * Este método tem como finalidade preparar a view para um novo cálculo
 * @param view
 */
 public void resetInputs(View view){
 TextView textView = findViewById(R.id.averageResult);
 EditText input1 = findViewById(R.id.inputGrade1);
 EditText input2 = findViewById(R.id.inputGrade2);
 EditText input3 = findViewById(R.id.inputGrade3);
 input1.setText("");
 input2.setText("");
 input3.setText("");
 textView.setText("0.0");
 textView.setTextColor(Color.parseColor("#808080"));
 }
 /**
 * Verifica se o elemento está vazio, retornando um valor boleano.
 * @param etText Elemento a ser verificado.* @return {Boolean}
 */
 private boolean isEmpty(EditText etText) {
 return etText.getText().toString().trim().length() == 0;
 }
}
Conclusão
A IDE Android Studio traz recursos que tornam simples o desenvolvimento de aplicativos para dispositivos móveis. Dentre os tantos recursos podemos destacar o fato de poder arrastar os elementos diretamente para o layout de tela, bem como posicioná-los e configurar seus atributos de maneira simples e rápida, o que nos permite ter uma ideia bem fiel de como a aplicação se apresentará para o usuário final. Além disso, podemos testar o comportamento da aplicação a partir da criação de um dispositivo virtual, o que possibilita de forma pratica a descoberta de bugs tanto no comportamento lógico da aplicação quanto no layout da tela.
Referências:
DEITEL, P. J.; DEITEL, H. M.; DEITEL, A. Android: como programar. Porto Alegre: Bookman, 2015.
SICSÚ, Calos Augusto. Desenvolvimento de aplicações mobile e distribuídas. E-Book da disciplina Programação para dispositivos móveis.

Continue navegando