Junior
Como passar dados de uma atividade para outra no Android?
sobes.tech IA
Resposta da IA
Os dados podem ser transmitidos usando Intent:
-
Na Activity de origem: Coloque os dados nos Extras do
Intentusando métodos comoputExtra(String key, value).// Preparando o Intent val intent = Intent(this, TargetActivity::class.java) // Adicionando dados intent.putExtra("myString", "Olá do primeiro Activity") intent.putExtra("myInt", 123) intent.putExtra("myBool", true) // Pode passar objetos que implementem Parcelable ou Serializable // intent.putExtra("myObject", myParcelableObject) // Iniciando a nova Activity startActivity(intent) -
Na Activity de destino: Extraia os dados dos Extras do
Intentrecebido no métodoonCreateouonNewIntent.// No onCreate() da Activity de destino override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_target) // Obtendo o Intent que iniciou esta Activity val intent = intent // Extraindo dados por chave val myString = intent.getStringExtra("myString") val myInt = intent.getIntExtra("myInt", 0) // Segundo argumento: valor padrão val myBool = intent.getBooleanExtra("myBool", false) // Processando os dados extraídos println("String recebida: $myString") println("Número recebido: $myInt") println("Booleano recebido: $myBool") // Para objetos Parcelable ou Serializable // val myObject = intent.getParcelableExtra<MyParcelableClass>("myObject") }
Outros métodos de transmissão de dados, adequados para cenários mais complexos ou grandes volumes de dados:
ViewModelcompartilhado entre Fragmentos/Activities (via SharedViewModel): Conveniente para dados comuns entre componentes relacionados.Bundle(dentro de Extras do Intent):putExtrana verdade usa umBundleinterno.- Variáveis estáticas/singletons: Deve ser usado com cautela, pois podem levar a vazamentos de memória e problemas de estado.
- Base de dados/SharedPreferences: Para armazenamento ou transmissão persistente de dados que requerem armazenamento.
- Event Bus (por exemplo, EventBus, RxJava): Para transmitir eventos ou dados entre componentes de forma assíncrona.
- File I/O: Salvando em arquivo e lendo dele.