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 dadosintent.getStringExtra("key")— recupera uma Stringintent.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
- Estrutura do Projeto e Manifesto
- Activities e Ciclo de Vida
- Layouts e Views
- Tratamento da Entrada do Usuário
- Intents e Navegação
- Fragments
- Permissões e Solicitações em Tempo de Execução