O uso mais comum de uma intent é quando queremos disparar uma nova Activity na nossa aplicação. O código típico para isto é algo como:
Intent it = new Intent(this, NovaActivity.class); startActivity(it);Grosseiramente podemos dizer que "passamos para uma nova tela", mas na a verdade a situação é bem mais complexa. Para começar, as duas Activities (a anterior e a nova) estarão executando independentemente. As instruções após startActivity(it) serão executadas normalmente e a Activity anterior não será informada quando a nova encerrar.
Uma variação deste código é quando queremos ser informados do encerramento da nova Activity:
Intent it = new Intent(this, NovaActivity.class); startActivityForResult(it, CODIGO);O parâmetro CODIGO é um int que pode ser usado para a nova Activity saber quem está chamando ou qual o motivo da chamada. Disparando uma Activity desta forma, quando ela encerra, o método onActivityResult da Activity anterior é chamado. Este método tem três parâmetros: o código passado em startActivityForResult, um código de retorno e um intent. Estes dois últimos parâmetros podem ser usados pela Activity que terminou para retornar resultados.
A passagem de parâmetros entre as duas Activities é um problema, já que estamos falando de dois objetos independentes. Uma forma simples, eficiente e suja é usar membros estáticos para criar variáveis globais.
A forma correta é passar os dados através das intents. Isto é feito usando o métod putExtra da classe intent, que salva um objeto na intent associando-o a uma chave. Existem versões de putExtra para alguns tipos mais comuns, como int e String. Objetos mais complexos precisam implementar a interface Parcelable. Basicamente você vai serializar os campos do seu objeto em strings. Um exemplo simples pode ser visto na primeira resposta desta pergunta.
Um comentário:
vc falou que passa informações de uma activity para a próxima, tem como passar para além da próxima uma outra próxima?? :D
Postar um comentário