Você está na página 1de 20

Impresso por Daay Santos, E-mail daays72@gmail.com para uso pessoal e privado.

Este material pode ser protegido por direitos


autorais e não pode ser reproduzido ou repassado para terceiros. 09/11/2022 13:44:52

PROGRAMAÇÃO
PARA DISPOSITIVOS
MÓVEIS
AVA1 – CALCULANDO MÉDIA
Impresso por Daay Santos, E-mail daays72@gmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 09/11/2022 13:44:52

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.
Impresso por Daay Santos, E-mail daays72@gmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 09/11/2022 13:44:52

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"
Impresso por Daay Santos, E-mail daays72@gmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 09/11/2022 13:44:52

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>
Impresso por Daay Santos, E-mail daays72@gmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 09/11/2022 13:44:52

Tela da aplicação:
Impresso por Daay Santos, E-mail daays72@gmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 09/11/2022 13:44:52
Impresso por Daay Santos, E-mail daays72@gmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 09/11/2022 13:44:52
Impresso por Daay Santos, E-mail daays72@gmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 09/11/2022 13:44:52

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 MainActivity extends AppCompatActivity {


class

@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);
Impresso por Daay Santos, E-mail daays72@gmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 09/11/2022 13:44:52

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, id) {
int dialog.cancel();
}
});

AlertDialog alert11 =
builder1.create(); alert11.show();
} else {
float a1 =
float Float.parseFloat(String.valueOf(input1.getText())); a2
float = Float.parseFloat(String.valueOf(input2.getText()));
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 (calcTemp 6) {
if >=
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;
}
}
Impresso por Daay Santos, E-mail daays72@gmail.com para uso pessoal e privado. Este material pode ser protegido por
direitos autorais e não pode ser reproduzido ou repassado para terceiros. 09/11/2022 13:44:52

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:

Você também pode gostar