📱 Cap 01: Seu Primeiro App (Activity, XML e Views)

🎯 Objetivo da Aula: Ao final desta aula, você terá criado e executado seu primeiro projeto no Android Studio. Você vai entender como uma tela é desenhada (XML), como o código Java “encontra” essa tela (findViewById) e como fazer um botão reagir a um toque (setOnClickListener).


🏢 O Cenário Prático (Seu Desafio): Seu primeiro trabalho como desenvolvedor é criar o Painel de Boas-Vindas do seu jogo. A tela deve mostrar a mensagem “Bem-vindo, Treinador!” e ter um botão “Iniciar Aventura”. Quando o jogador tocar no botão, a mensagem deve mudar para “Boa sorte na sua jornada!”.


🧠 Fundamentos: A Teoria Traduzida

📖 Dicionário do Programador

🎨 Padrão XML + Java (a Ponte)

Pense no XML como a planta de uma casa e no Java como o eletricista que liga os fios. O id de cada View no XML (android:id="@+id/...") é o nome que o Java usa para encontrar aquele componente com findViewById.

graph TD
    A["XML: define a View com um id"] --> B["Java: localiza a View com findViewById"]
    B --> C["Java: registra um setOnClickListener"]
    C --> D["Usuário toca no botão"]
    D --> E["Código do listener executa: setText(...)"]

🏗️ Construindo o Projeto (Checklist Studio)

Para esta aula (e para o Projeto 1, que você fará em seguida), vamos criar um projeto Android real:

  1. Abra o Android Studio e clique em New Project.
  2. Escolha o template Empty Views Activity (atenção: não escolha “Empty Activity” puro — esse usa Compose).
  3. Configure:
    • Name: Dados RPG
    • Package Name: br.com.curso.dadosrpg
    • Language: Java
    • Minimum SDK: API 21 (Android 5.0) ou superior.
  4. Clique em Finish e aguarde o Gradle terminar de carregar.

💡 Este é o mesmo projeto que você vai evoluir no Projeto 1 (P01 — Dados RPG). Hoje vamos apenas testar a tela com um “Painel de Boas-Vindas”; no projeto, você vai substituir esse conteúdo pela mecânica do dado.


📖 Exemplo Passo a Passo: O Painel de Boas-Vindas

Parte 1 — A Tela (XML): abra app > src > main > res > layout > activity_main.xml e troque o conteúdo pelo:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:padding="24dp">

    <TextView
        android:id="@+id/txt_mensagem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Bem-vindo, Treinador!"
        android:textSize="22sp"
        android:textStyle="bold" />

    <Button
        android:id="@+id/btn_iniciar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:text="Iniciar Aventura" />

</LinearLayout>

Parte 2 — A Lógica (Java): abra MainActivity.java e conecte o botão à mensagem:

package br.com.curso.dadosrpg;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private TextView txtMensagem;
    private Button btnIniciar;

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

        // 1. Encontra as Views desenhadas no XML
        txtMensagem = findViewById(R.id.txt_mensagem);
        btnIniciar = findViewById(R.id.btn_iniciar);

        // 2. Registra o "ouvido" do botão
        btnIniciar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                txtMensagem.setText("Boa sorte na sua jornada!");
            }
        });
    }
}

🛠️ Prática Obrigatória 1: No seu activity_main.xml, adicione um segundo TextView, abaixo do botão, com id="txt_rodape" e texto "Versão 1.0". Ele não precisa reagir a nada — é só para praticar a criação de Views no XML.


🛠️ Prática Obrigatória 2: No MainActivity.java, troque a mensagem do setText dentro do onClick para incluir o seu nome, por exemplo: "Boa sorte, " + "SeuNome" + "!".


🔑 Gabarito Passo a Passo:

Exercício 1 (XML):

<TextView
    android:id="@+id/txt_rodape"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="40dp"
    android:text="Versão 1.0" />

Exercício 2 (Java):

txtMensagem.setText("Boa sorte, " + "SeuNome" + "!");

📤 Instruções de Entrega (Microsoft Teams):

  1. Tire um print da tela antes e depois de tocar no botão.
  2. Envie o código completo do activity_main.xml e do MainActivity.java.
  3. Submeta no canal de tarefas.

💡 No próximo capítulo (Cap 02), você vai aprender a lógica em Java (variáveis, operadores e a classe Random) que vai dar vida à mecânica de sorteio do Projeto 1 — o Dado RPG.


⬅️ Voltar para a Home