Section outline

Main course page

    • O que é uma Activity?

      Activity representa uma tela do aplicativo, onde é possível realizar interações, como clicar em botões, visualizar textos, acessar menus e utilizar outros recursos.

      Podemos pensar nela como uma “janela” ou “página” do aplicativo.

      É a fusão da classe MainActivity (em Kotlin) com o arquivo XML correspondente.

      Uma analogia simples é imaginar um livro: cada página representa uma Activity, e o livro completo representa todo o aplicativo. Assim, o usuário “folheia” o app ao navegar entre diferentes Activities.

      .

       


    • Navegação entre Activities

      O ChatGPT disse:

      Primeiro de tudo, vamos introduzir um conceito chamado pilha de Activities, que, como o nome sugere, ocorre quando uma Activity fica sobre a outra visto que, cada vez que uma nova Activity é aberta, ela fica em cima da Activity anterior.

      E, para voltar para uma Activity anterior, basta fechar a Activity mais recente.

      Voltando à nossa analogia do livro, seria como as páginas lidas, que ficam umas sobre as outras.

      A navegação entre as Activities, seguindo essa analogia, seria como navegar pelo nosso livro e, para isso, iremos primeiro criá-las. Siga o seguinte tutorial:


      No Android Studio

      Para criar uma nova Activity, utilizaremos o método startActivity() e, para isso, precisamos definir um objeto Intent, que deverá ter definidos o contexto e a classe.

      O usuário sempre abrirá a Activity principal e, a partir dela, poderá navegar pelas outras.

      A função findViewById() serve para encontrar um componente de interface na sua tela pelo id e retornar um objeto, permitindo que você realize ações com ele (como clicar em um botão, por exemplo).


      Herança de classes

      Mas o que seria exatamente esse contexto?
      Seria onde exatamente a ação será executada.
      Por exemplo: pedimos a ação de abrir o livro em uma determinada página. O contexto seria o capítulo e a página exata, eliminando qualquer ambiguidade da ação.


      O que nosso programa está lendo

      Perceba que, quando a SecondActivity é aberta, a tela em que estávamos antes não é apagada, ela apenas fica “escondida atrás” da nova tela.
      Quando usamos finish(), estamos finalizando a Activity que está na frente.
      Como resultado, a tela anterior volta a ficar visível, dando a sensação de que “voltamos” para ela.

      De forma resumida:

      • Dizemos ao Android Studio qual é a página atual (Activity atual) usando o this;

      • Depois, informamos para qual Activity queremos ir (por exemplo, SecondActivity::class.java);

      • Em seguida, mandamos o app ir para essa página usando startActivity(intent);

      • E podemos voltar utilizando a função finish().


      Obs.: durante o vídeo, talvez apareçam alguns conceitos que não foram vistos anteriormente.
      Eles não são necessariamente sobre Activities, mas são importantes para o seu uso — por isso, o que cada um deles faz está descrito no fim da aula.

       

       

      Not available unless: You belong to any group
    • Ciclo de Vida de uma Activity

      Como já dito, uma Activity representa várias páginas de um livro e, assim como na leitura em que começamos lendo uma linha, depois um parágrafo, até terminar a página, a Activity também possui algumas etapas até ser finalizada.
      Essa sequência é chamada de Ciclo de Vida de uma Activity.


      O ciclo de vida de uma Activity inclui os seguintes estados principais:


      Activity iniciada:

      • onCreate(): é chamado quando a Activity é criada pela primeira vez.
        Nesse momento, a interface é carregada como se aparecesse um “sinal de carregando” para o usuário.

      • onStart(): é chamado quando a Activity está prestes a se tornar visível para o usuário.
        Aqui é onde os dados serão realmente carregados.

      • onResume(): indica que a Activity está ativa e em primeiro plano, pronta para interagir com o usuário — desaparecendo o ícone de carregamento.


      Activity rodando:

      • onPause(): ocorre quando outra Activity aparece à frente, parcial ou totalmente.
        Nesse momento, a Activity precisa pausar operações como animações ou sons.

      • onStop(): é chamado quando a Activity não está mais visível, permitindo liberar recursos mais pesados ou salvar estados importantes.

      • onRestart(): é acionado quando a Activity que estava parada volta a ficar visível, preparando-se para retomar a interação.

      • onDestroy(): é chamado quando a Activity está sendo destruída, liberando memória e realizando a limpeza final.

      Not available unless: You belong to any group
    • Passando Dados entre Activities

      Às vezes, você precisa lembrar algo que leu em uma página anterior ou anotar informações para usar em outra página.
      No Android, isso equivale a passar dados de uma Activity para outra.

      Para isso, usamos objetos chamados Intent.
      A Intent funciona como um marcador de página ou um bilhete que você deixa na página atual, dizendo à próxima:

      “Aqui estão algumas informações que você precisa.”

       
       

       

      Not available unless: You belong to any group
    •  

      Observações:


      lateinit var ButtonAbrir: Button

      Esse trecho cria uma variável ButtonAbrir do tipo Button e, se você reparar bem, não foi atribuído nenhum valor a ela.
      É justamente por isso que usamos o lateinit.

      Em Kotlin, as variáveis não podem ser nulas (ou seja, não podem ficar sem valor).


      O lateinit, que em tradução livre significa “inicializar mais tarde”, resolve isso: ele avisa ao programa que a variável receberá um valor depois, garantindo que, quando for usada, não será nula.


      buttonAbrir = findViewById(id = R.id.button_abrir)


      Nesse caso, estamos usando a função findViewById, que significa literalmente “encontrar pelo identificador”.

      Ou seja, estamos dizendo que a variável buttonAbrir vai se associar ao elemento da tela que tem o ID button_abrir, permitindo que possamos trabalhar com esse botão no código.


      buttonAbrir.setOnClickListener { realizarTarefaX }


      A parte setOnClickListener significa literalmente “configurar um escutador de cliques”, e é exatamente isso que ela faz.

      Com essa linha, estamos dizendo ao computador:

      “Fique prestando atenção sempre que o usuário clicar no botão buttonAbrir e, assim que isso acontecer, execute a tarefa X.”


      Perceba que tanto esse código quanto o findViewById estão relacionados:

      1. Primeiro, criamos uma variável chamada buttonAbrir e associamos ela ao elemento que possui o identificador button_abrir utilizando o findViewById.

      2. Depois, usamos essa variável (que representa o botão na tela) para definir uma função que será executada quando o botão for clicado.

       

      Not available unless: You belong to any group
    • Opened: Wednesday, 4 February 2026, 12:00 AM
      Due: Saturday, 18 April 2026, 11:59 PM
      Atividade 9 - Componentes de Interação e navegação entre telas

      Esta atividade tem por finalidade verificar se conseguiu  compreender os principais recursos de interação e navegação entre telas no  Android Studio, aprendendo a navegar entre as Activities de um projeto, bem como o ciclo de vida, bem como a passar valores entre as telas através de variáveis ou objetos.

      🕙 Dedicação: 1h45m

      📆 Prazo: 19/10 (23:59)

      ✔️ Critérios de Avaliação: 

      1. Se enviou o conteúdo solicitado
      • Usar o mesmo aplicativo do contador, feito na aula 3,  mas agora com duas Activities.

        • Activity 1:
          • Exibe o botão “Contar” (que incrementa o contador).
          • Possui também o botão “Ir para a Página 2”, que abre a segunda Activity.
        • Activity 2:
          • Mostra o valor atual da contagem (recebido da primeira Activity).
          • Tem um botão “Voltar para a Página 1”, que retorna para a primeira Activity.


        • O que enviar ?  Um único arquivo pdf contendo:
        • O conteúdo dos arquivos .kt (kotlin) desenvolvidos
        • foto ou print das telas do emulador ou do dispositivo fixo
Accessibility

Background Colour Background Colour

Font Face Font Face

Font Kerning Font Kerning

Font Size Font Size

1

Image Visibility Image Visibility

Letter Spacing Letter Spacing

0

Line Height Line Height

1.2

Link Highlight Link Highlight

Text Alignment Text Alignment

Text Colour Text Colour

Paragraph Width Paragraph Width

0