Avviare l'Activity:
si ha bisogno di passare un ulteriore argomento intero al startSubActivity() method.You può farlo definendo una costante o semplicemente inserendo un intero. L'argomento intero è un "codice di richiesta" che identifica la tua richiesta. Quando ricevi il risultato Intent, il callback fornisce lo stesso codice di richiesta in modo che la tua app possa identificare correttamente il risultato e determinare come gestirlo.
static final int ASK_QUESTION_REQUEST = 1;
// Create an Intent to start SecondActivity
Intent askIntent = new Intent(FirstActivity.this, SecondActivity.class);
// Start SecondActivity with the request code
startActivityForResult(askIntent, ASK_QUESTION_REQUEST);
restituire il risultato:
Dopo aver completato il lavoro in seconda classe di attività è sufficiente impostare il risultato e chiamare che l'attività da dove viene e, infine, non dimenticate di scrivere finitura) dichiarazione (.
// Add the required data to be returned to the FirstActivity
sendIntent.putExtra(Result_DATA, "Your Data");
// Set the resultCode to Activity.RESULT_OK to
// indicate a success and attach the Intent
// which contains our result data
setResult(RESULT_OK, sendIntent);
// With finish() we close the SecondActivity to
// return to FirstActivity
finish();
ricevere il Risultato:
volta finito con la successiva attività e ritorna, il sistema chiama il metodo onActivityResult() della vostra attività. Questo metodo include tre argomenti:
@Il codice di richiesta passato a startActivityForResult(). @Un codice risultato specificato dalla seconda attività. Questo è RESULT_OK se l'operazione è andata a buon fine o RESULT_CANCELED se l'operazione non è riuscita @ Un intento che contiene i dati dei risultati.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// check if the request code is same as what is passed here it is 1
if (requestCode == ASK_QUESTION_REQUEST) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
final String result = data.getStringExtra(SecondActivity.Result_DATA);
// Use the data - in this case display it in a Toast.
Toast.makeText(this, "Result: " + result, Toast.LENGTH_LONG).show();
}
}
}
Per maggiori dettagli pls vedere questa dimostrazione Getting a Result from An Activity
fonte
2016-10-11 22:01:21
Cosa dovrei usare nella mia finestra di dialogo personalizzata? –
abbiamo impostato requestCode su 1 se tutto va bene, quindi RESULT_OK sarà 1 quindi in attivitàRisultato possiamo verificare se (requestCode == RESULT_OK). Per il risultato dell'impostazione abbiamo utilizzato setResult nell'attività di dialogo personalizzata. possiamo inserire alcuni dati con una coppia chiave-valore come menzionato sopra. Per ottenere che i dati in onActivityResult utilizzino il nome di questa chiave per recuperarne il valore. –