El mecanismo "onActivityResult" de Android no funcionará
Tengo un problema grande y frustrante con una aplicación simple. Tengo dos actividades: A y B. La actividad A abre la actividad B al hacer clic en un botón. La actividad B tiene dos "extremos": si el usuario hace clic en B. Regresar si acaba de terminar y vuelve a A, si el usuario hace clic en el botón B.Aceptar, la actividad B termina pero antes de eso establece el resultado "OK" para que la actividad A pueda cerrarse también.
Este es el pseudo código para A:
btnNext.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//some code...
startAct(data);
}
});
private void startAct(Intent inte) {
startActivityForResult(inte, -999);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
System.out.println(resultCode);
if(requestCode != -999)
return;
if(resultCode == RESULT_OK)
finish();
}
A la actividad B le gusta esto:
btnOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//some other code...
finishOK();
}
});
private void finishOK() {
setResult(RESULT_OK, new Intent());
finish();
}
El problema es que esto no funcionará: cuando presiono "btnOK" B debería terminar, A debería "capturar" el resultado y terminar también, pero simplemente no sucederá. ¿Qué me estoy perdiendo?