Programação do aplicativo

Este texto base aborda os seguintes temas:

Tipos de variáveis

Como você tem aprendido, a linguagem Java é tipada. Assim, para utilizar uma variável, é fundamental informar o tipo de dado que ela vai armazenar.

A figura abaixo mostra alguns dos tipos básicos de variáveis:

Tipo Descrição
int Um valor inteiro, ou seja, um número inteiro (sem decimais) que inclui zero e números negativos.
float Um valor de ponto flutuante, um valor decimal (quebrado, ou com vírgula). Porém, as casas decimais (do lado direito da vírgula) podem "flutuar", ou seja, são imprecisas. Quando são necessários decimais precisos, como moeda, devemos usar o BigDecimal.
boolean Um valor que pode ser verdadeiro ou falso. As palavras-chave no Java para os valores são "true" e "false".
char Um único caractere, como a letra 'A' ou o símbolo '#'. Cuidado, pois as maiúsculas e minúsculas são diferentes, então 'a' e 'A' são duas coisas diferentes.
String Uma String é um conjunto de caracteres formando um texto, por exemplo: "Android é legal".

Para declarar uma variável, utilizamos a seguinte sequência: primeiramente, especificamos o tipo e, posteriormente, um nome. No exemplo a seguir, a variável é do tipo numérica "float", e seu nome é "km".

    float km;
  

Para atribuir um valor nessa variável, utilizamos o operado de atribuição "=". No exemplo a seguir, atribuímos o valor "10" na variável.

    km = 10;
  

Construção da Activity para converter quilômetro em metro

Vamos utilizar o arquivo "activity_km_m.xml" para desenvolver a tela da nossa interface com o usuário. A figura abaixo mostra a localização do arquivo.

O vídeo a seguir demonstra o processo de desenvolvimento da interface do arquivo "activity_km_m.xml".

Caso tenha perdido alguma parte, segue o código XML do arquivo "activity_km_m.xml".

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.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=".KmM">
      <TextView
        android:id="@+id/txtKm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="56dp"
        android:text="Km:"
        android:textColor="@color/colorPrimary"
        android:textSize="14sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>
      <EditText
        android:id="@+id/edtKm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/txtKm"/>
      <TextView
        android:id="@+id/txtM"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="44dp"
        android:text="Metro:"
        android:textColor="@color/colorPrimary"
        android:textSize="14sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/edtKm"/>
      <EditText
        android:id="@+id/edtM"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/txtM"/>
      <Button
        android:id="@+id/btnConverter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:background="@color/colorPrimary"
        android:text="Converter"
        android:textColor="@android:color/background_light"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/edtM"
        app:layout_constraintVertical_bias="0.026"/>
    </android.support.constraint.ConstraintLayout>

  

Desenvolvendo o código para compor o cálculo de conversão

Assista ao vídeo 2 abaixo, que mostra o desenvolvimento da programação da Activity.

Desenvolvimento da programação da Activity

    package com.example.aula01;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;

    public class KmM extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_km_m);

            //Desenvolvimento dos componentes da programação
            //e interligação dos componentes da Tela
            final EditText edtKm_prog = (EditText) findViewById(R.id.edtKm);
            final EditText edtM_prog = (EditText) findViewById(R.id.edtM);
            Button btnConverter_prog = (Button) findViewById(R.id.btnConverter);

            //Ação de click do botão
            btnConverter_prog.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //Declaração de variáveis
                    float km, m;
                    //Leitura e atribuição do valor de Km.
                    //Observação: O valor vem como "String" do "PlainText",
                    //e vamos converter em número através do
                    //"Float.parseFloat".
                    km = Float.parseFloat(edtKm_prog.getText().toString());
                    //Calculo para converter "Km" em "Metro"
                    m = km * 1000;
                    //Conversão de número para "String", para mostrar o resultado na Tela
                    edtM_prog.setText(String.valueOf(m));
                }
            });
        }
    }