Je commence un nouveau Activity
à partir du Activity
avec startActivityForResult(intent, requestCode)
. Je souhaite renvoyer les données à l'original Activity
lorsque l'utilisateur appuie sur le bouton Précédent, donc lorsqu'il revient à l'original Activity
name__. J'ai essayé deux méthodes:
onBackPressed()
:
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent();
intent.putIntegerArrayListExtra(SELECTION_LIST, selected);
setResult(RESULT_OK, intent);
}
onPause()
:
@Override
protected void onPause() {
super.onPause();
Intent intent = new Intent();
intent.putIntegerArrayListExtra(SELECTION_LIST, selected);
setResult(RESULT_OK, intent);
}
Malheureusement, aucun d'entre eux n'a fonctionné (resultCode
n'est pas RESULT_OK
dans onActivityResult()
). Quelle est la bonne façon de faire cela? Merci!
Puisque cette question retient toujours l'attention, je poste une réponse plus correcte que celle que j'avais acceptée il y a deux ans, merci pour MasterGaurav pour le conseil .
@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putIntegerArrayListExtra(SELECTION_LIST, selected);
setResult(RESULT_OK, intent);
super.onBackPressed();
}
Essaye ça :
@Override
public void onBackPressed() {
// super.onBackPressed();
Intent intent = new Intent();
intent.putIntegerArrayListExtra(SELECTION_LIST, selected);
setResult(RESULT_OK, intent);
finish();
}
Essaye ça:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
return true;
}
return super.onKeyDown(keyCode, event);
}
Commencez une nouvelle activité à partir de l'activité d'origine avec startActivityForResult(intent, requestCode)
lorsque vous souhaitez renvoyer des données à l'activité d'origine lorsque l'utilisateur appuie sur le bouton Précédent, donc lorsque vous revenez à l'activité d'origine.
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent();
intent.putIntegerArrayListExtra(SELECTION_LIST, selected);
setResult(RESULT_OK, intent);
}
si vous voulez récupérer le résultat de l'activité nouvellement ouverte, remplacez simplement
onActivityResult(int requestCode, int resultCode, Intent data)
Méthode de l'activité d'origine
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}