Eu tenho 2 atividades, Activity1 e Activity2 .
Em Activity1
Eu tenho um botão e TextView . Quando o botão é clicado, a Atividade2 é iniciada.
Em Activity2
eu tenho um EditText .
Desejo exibir os dados recuperados do EditText na Atividade2 no TextView na Atividade1 quando pressionar Voltar da Atividade2 .
alguém pode me ajudar com o código para fazer isso funcionar?
android
android-activity
parent-child
pass-data
kumareloaded
fonte
fonte
startActivityForResult
Activity2
coloca o valor no armazenamento persistente e oActivity1
lê a partir daí.Respostas:
Inicie a Activity2 com
startActivityForResult
e use osetResult
método para enviar dados de volta da Activity2 para a Activity1. Na Atividade1, você precisará substituironActivityResult
a atualizaçãoTextView
com osEditText
dados da Atividade2.Por exemplo:
Na Atividade1 , inicie a Atividade2 como:
Na Atividade2 , use
setResult
para enviar dados de volta:E na Activity1 , receba dados com
onActivityResult
:Se você puder, use também SharedPreferences para compartilhar dados entre as Atividades.
fonte
SharedPreferences
, veja este exemplo #Activity1 deve iniciar Activity2 com
startActivityForResult()
.A Atividade2 deve ser usada
setResult()
para enviar dados de volta para a Atividade1 .Na Atividade2 ,
Na Atividade1 ,
fonte
Outras respostas não estavam funcionando quando eu coloco
setResult
noonBackPressed
. Comentar a chamada para superonBackPressed
e chamarfinish
manualmente resolve o problema:E na primeira atividade:
fonte
Tome isso como alternativa ao startActivityforResult.Mas, lembre-se de que, nesses casos, essa abordagem pode ser cara em termos de desempenho, mas em alguns casos você pode precisar usar.
Na Atividade2,
Na Atividade1,
fonte
Na FirstActivity, chame o SecondActivity usando o método startActivityForResult ().
Por exemplo:
No SecondActivity, defina os dados que você deseja retornar ao FirstActivity. Se você não quiser voltar, não defina nenhum.
Por exemplo: Em secondActivity, se você deseja enviar dados de volta:
Se você não deseja retornar dados:
Agora, na sua classe FirstActivity, escreva o código a seguir para o método onActivityResult ().
fonte
esta é sua primeira Activity1.
A partir daqui, você está iniciando sua Activity2.class usando startActivityForResult (mRequestCode, Activity2.class);
Agora, esta é sua segunda atividade, o nome é Activity2
Agora, quando você termina sua segunda Activity, chama o método setResult (), de onBackPress () ou de qualquer botão, quando a Activity2 destrói, o método de retorno de chamada da Activity1, onActivityResult () , chamará a partir daí, você poderá obter os dados da intenção ..
Espero que ajude a você ... :)
fonte
Leia estes:
Estes artigos ajudarão você a entender como passar dados entre duas atividades no Android.
fonte
TL; DR Use
Activity.startActivityForResult
Resposta longa:
Você deve começar lendo a documentação do desenvolvedor do Android. Especificamente, o tópico da sua pergunta é abordado na
Starting Activities and Getting Results
seção daActivity
documentação.Como no código de exemplo, o SDK do Android fornece bons exemplos. Além disso, outras respostas aqui fornecem pequenos trechos de código de exemplo para usar.
No entanto, se você estiver procurando por alternativas, leia esta pergunta SO . Esta é uma boa discussão sobre como usar
startActivityForResults
com fragmentos, bem como algumas abordagens para a passagem de dados entre atividades.fonte
e Eu tenho um problema que eu queria fazer esse tipo de envio de dados em um botão programável que eu criei e a tecla programável que é o padrão em todos os dispositivos Android, então eu fiz isso, primeiro eu fiz um
Intent
no meu "A"Activity
:Então, na minha segunda atividade, declarei um campo no meu "B"
Activity
:depois que eu fiz minha solicitação com êxito ou sempre que desejei informar à atividade "A" que este trabalho foi realizado com êxito, altere o valor de resultCode para o mesmo que eu disse em "A",
Activity
que no meu caso é "60" e então:PS: Lembre-se de remover o
Super
método onBackPressed se você quiser que ele funcione corretamente.então devo chamar o
onActivityResult
método na minha atividade "A" também:é isso, espero que ajude você. #HappyCoding;
fonte