2012-09-03 28 views
6

¿Alguien puede enumerar amablemente cuáles son los valores de requestCode que se aprobarán con startActivityForResult() y su propósito? Además, ¿puede explicar en los parámetros setResult disponibles como RESULT_OK y qué más hay? Amablemente ayuda.Tipos de RequestCode para startActivityforResult

Respuesta

7

Al iniciar una actividad de resultado con requestCode >= 0, este código será devuelto a onActivityResult() cuando la segunda actividad de la primera actividad es finished.You puede iniciar varias Activity para el resultado de su Activity. En cada caso, obtiene la devolución de llamada al método startActivityForResult() pasando el requestCode. En onActivityResult() podemos usar requestCode para averiguar para qué actividad hemos recibido la devolución de llamada. Entonces, para diferenciar entre las devoluciones de llamada de Activities, usamos diferentes tipos de solicitud.

Por ejemplo:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Intent i = new Intent(FirstActivity.this, SecondActivity.class); 
    startActivityForResult(i, 1); 
    Intent i = new Intent(FirstActivity.this, ThirdActivity.class); 
    startActivityForResult(i, 2); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

if (requestCode == 1) { 

    if (resultCode == RESULT_OK) { 
    //Get the result from SecondActivity 
    } 

    } 
else if (requestCode == 2) { 
    if (resultCode == RESULT_OK) { 
    //Get the result from ThirdActivity 
    } 
} 
} 
2

Usted puede poner lo que quiera en requestCode, que está ahí para que usted sepa qué información específica que usted está esperando para volver después de comenzar la Activity con especificada requestCode. El Activity que se llama debe llamar al setResult(RESULT_OK) cuando ha pasado la información al anterior Activity para verificar que estos sean los datos correctos y todo salió bien.

1

El requestCode es decisión suya. Le ayudará a reconocer qué Activity ha terminado, en su método onActivityResult(). Además, los parámetros de resultado son más o menos depende de usted, siempre y cuando trabaje con sus propias Actividades solamente. Puede considerarlo como el valor de retorno de la actividad llamada a la llamada.

2

El requestCode en startActivityForResult() se utiliza para asignar un id a la solicitud, por lo que la solicitud se puede identificar con este código, en onActivityResult(). Como si alguien hubiera escrito códigos para comenzar dos actividades en una actividad B y C, siguiendo Código

startActivityForResult(new Intent(A.this, B.class), 1); 
startActivityForResult(new Intent(A.this, C.class), 2); 

ahora en onActivityResult() puede reconocida que Activity ha vuelto resultado.

El método setResult() se utiliza para establecer Intent en Result y resultCode. Por resultCode le decimos onActivityResult() que el resultado es correcto o cancelado. en The Intent que establecemos en Result, se puede utilizar para pasar algunos datos, por intent.putExtra() métodos.

Cuestiones relacionadas