0Pricing
Android Academy · Aula

Intents e Navegação

Navegue entre Activities com Intents explícitos, passe dados com putExtra/getExtra e inicie aplicações externas com Intents implícitos.

Intents e Navegação é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 5 de 7. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 7 aulas no total.

O que é um Intent?

Um Intent é uma mensagem que instrui o Android a fazer algo:

  • Intent explícito — inicia uma Activity específica do seu aplicativo
  • Intent implícito — pede ao Android que encontre um aplicativo capaz de realizar a ação (abrir uma URL, fazer uma chamada ou compartilhar texto)

Os Intents são a principal forma de as Activities se comunicarem.

Intent explícito: abrindo uma tela

Inicie outra Activity no seu aplicativo:

// In your button click listener:
binding.btnGoToDetail.setOnClickListener {
    val intent = Intent(this, DetailActivity::class.java)
    startActivity(intent)
}

// To also close the current screen after navigating:
binding.btnLogin.setOnClickListener {
    val intent = Intent(this, HomeActivity::class.java)
    startActivity(intent)
    finish() // removes LoginActivity from back stack
}

Passando dados com extras

Use extras para passar dados à próxima Activity:

  • intent.putExtra("key", value) — anexa dados
  • intent.getStringExtra("key") — recupera uma String
  • intent.getIntExtra("key", defaultValue) — recupera um Int

Use constantes para as chaves e evite erros de digitação.

Passando e recebendo extras

Envie dados de uma Activity e leia-os na próxima:

// Sending Activity:
val intent = Intent(this, DetailActivity::class.java)
intent.putExtra("PRODUCT_ID", 42)
intent.putExtra("PRODUCT_NAME", "Laptop")
startActivity(intent)

// DetailActivity — receiving:
class DetailActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_detail)

        val id = intent.getIntExtra("PRODUCT_ID", -1)
        val name = intent.getStringExtra("PRODUCT_NAME") ?: ""
        // Use id and name to load data
    }
}

Intents implícitos

Os Intents implícitos permitem que seu aplicativo use recursos de outros aplicativos instalados sem saber qual aplicativo os trata:

  • Abra uma URL no navegador
  • Disque um número de telefone
  • Envie um e-mail
  • Compartilhe texto com qualquer aplicativo

O Android exibe um seletor quando vários aplicativos podem tratar o Intent.

Intents implícitos comuns

Inicie ações do sistema com Intents implícitos:

import android.content.Intent
import android.net.Uri

// Open a web page
val webIntent = Intent(Intent.ACTION_VIEW,
    Uri.parse("https://developer.android.com"))
startActivity(webIntent)

// Dial a phone number
val dialIntent = Intent(Intent.ACTION_DIAL,
    Uri.parse("tel:+15551234567"))
startActivity(dialIntent)

// Share text
val shareIntent = Intent(Intent.ACTION_SEND).apply {
    type = "text/plain"
    putExtra(Intent.EXTRA_TEXT, "Check out this app!")
}
startActivity(Intent.createChooser(shareIntent, "Share via"))

Obtendo resultados de volta

Quando precisar de um resultado de outra tela (por exemplo, um seletor de imagens ou formulário), use a API de resultados de Activity:

  • Registre um lançador com registerForActivityResult
  • Inicie-o quando necessário
  • Trate o resultado em uma função de retorno de chamada

Isso substitui o padrão antigo startActivityForResult / onActivityResult.

Exemplo da API de resultados

Solicite uma foto da galeria e obtenha-a de volta:

import androidx.activity.result.contract.ActivityResultContracts

class MainActivity : AppCompatActivity() {

    private val pickImage = registerForActivityResult(
        ActivityResultContracts.GetContent()
    ) { uri ->
        // 'uri' is the selected image URI, or null if cancelled
        if (uri != null) {
            binding.ivPhoto.setImageURI(uri)
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // ...
        binding.btnPickPhoto.setOnClickListener {
            pickImage.launch("image/*")
        }
    }
}

Links diretos

Um link direto é uma URL que abre diretamente uma tela específica do seu aplicativo — útil para notificações push e links de marketing.

Declare links diretos em AndroidManifest.xml usando intent-filter com uma tag data que especifique o esquema e o host da URL.

Verificação rápida

Que tipo de Intent você usaria para abrir um site no navegador do usuário?

Recapitulação: Intents e navegação

Agora você sabe navegar entre telas e iniciar recursos do sistema:

  • Intent explícito — inicia uma Activity específica do seu aplicativo
  • putExtra / getExtra — passa dados entre Activities
  • Intent implícito — abre URLs, disca números e compartilha conteúdo
  • API de resultados de Activity — recebe dados de outra Activity

Próximo passo: exibir listas dinâmicas com RecyclerView.

Perguntas Frequentes

A aula “Intents e Navegação” é grátis?

Sim — o texto completo de “Intents e Navegação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 7 aulas no total.

O que vou aprender em “Intents e Navegação”?

Navegue entre Activities com Intents explícitos, passe dados com putExtra/getExtra e inicie aplicações externas com Intents implícitos. Você pratica Android Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Android Academy?

Nenhuma experiência prévia é necessária. Android Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 5 de 7.

Quanto tempo leva a aula “Intents e Navegação”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Android Academy?

Sim. Cada aula de Android Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Estrutura do Projeto e Manifesto
  2. Activities e Ciclo de Vida
  3. Layouts e Views
  4. Tratamento da Entrada do Usuário
  5. Intents e Navegação
  6. Fragments
  7. Permissões e Solicitações em Tempo de Execução
← Voltar para Android Academy