Eu tenho uma Location
atividade que pode ser chamada de várias atividades, como Sign up
e Order
. Na Location
atividade, o usuário digita sua localização, para que a atividade Location
retorne esse novo local à atividade que o chamou.
Portanto, quando a Sign up
atividade chama a Location
atividade, ela deve retornar os dados para a Sign up
atividade. Outra vez a Order
atividade fará a mesma coisa.
Nota
Sei que você vai me dizer que devo postar o código, mas não estou pedindo que você me dê o código; Eu só quero algumas dicas, links ou bons tópicos.
android
android-activity
onactivityresult
usuário usuário
fonte
fonte
Respostas:
Para iniciar uma atividade que deve retornar o resultado à atividade de chamada, você deve fazer algo como abaixo. Você deve passar o requestcode como mostrado abaixo para identificar que obteve o resultado da atividade que iniciou.
Na atividade, você pode usar
setData()
para retornar o resultado.Então, novamente, na primeira atividade, você escreve o código abaixo em onActivityResult ()
EDITAR com base no seu comentário: Se você deseja retornar três strings, siga isso usando pares de chave / valor com intenção em vez de usar Uri.
Obtenha-os no onActivityResult como abaixo:
fonte
requestcode
posso colocar qualquer número inteiro?new Intent(this, OtherActivity.class);
eu posso usar esse código em uma atividade.Se você quiser terminar e adicionar um
resultCode
(sem dados), liguesetResult(int resultCode)
antesfinish()
.Por exemplo:
Em sua atividade de chamada, verifique o
resultCode
, para ver se estamos bem.Não se esqueça de chamar a atividade com
startActivityForResult(intent, someCustomRequestCode)
.fonte
Activity.RESULT_OK
é realmente-1
, caso isso confunda alguém. Gostaria apenas de sugerir usando asActivity
constantes