Red de conocimiento informático - Conocimiento informático - Cómo escribir el valor de retorno en onactivityresult cuando diferentes páginas saltan a la misma página en Android

Cómo escribir el valor de retorno en onactivityresult cuando diferentes páginas saltan a la misma página en Android

MainActivity existente, cuando ingresa a SecondActivity, SecondActivity necesita devolver el valor a MainActivity después de realizar ciertas operaciones en SecondActivity.

Entonces, puede usar onActivityResult() este método. A continuación, describiré el uso. de este método.

Pero antes de eso, hablemos del uso de las intenciones:

Las intenciones se dividen principalmente en implícitas y explícitas. Las intenciones explícitas generalmente se usan para iniciar datos entre actividades en una aplicación,

mientras que las intenciones implícitas generalmente se usan para iniciar acciones específicas en el sistema, como hacer una llamada telefónica o iniciar una actividad entre aplicaciones.

Generalmente:

Intención explícita: una intención que especifica explícitamente el nombre del componente llamando al método Intent.setComponent() o Intent.setClass() es una intención explícita, que especifica claramente a qué componente se debe pasar el Intent.

Intención explícita: las intenciones que no especifican explícitamente el nombre de un componente son intenciones implícitas. Android encontrará el componente más apropiado para manejar la intención según la acción, la categoría y los datos

(URI y tipo de datos) establecidos en la intención implícita.

1. Código principal en MainActivity

(1) Cuando se requiere un valor de retorno, inicie startActivityForResult(intent, REQUEST_CODE);

Preste atención al segundo. one El parámetro es el segundo parámetro solicitado es un valor de tipo int, que se utiliza en el método onActivityResult() para determinar el requestCode

y así determinar qué actividad se inició.

(2) El segundo parámetro en el método onActivityResult() es el valor de SecondActivity que devuelve la clave.

El tercer parámetro es el valor correspondiente a SecondActivity que devuelve la clave. llave.

final int RESULT_CODE=101;

final int REQUEST_CODE=1;

public void enterSecond(Ver vista) {

Intención =new Intent( this, SecondActivity.class);

startActivityForResult(intent, REQUEST_CODE

}

@Override

protected); void onActivityResult(int requestCode, int resultCode, datos de intención) {

Log.i(TAG, "onActivityResult " "requestCode " requestCode "\n resultCode=" resultCode

if); (requestCode==REQUEST_CODE) {

if(resultCode==RESULT_CODE) {

String result=data.getStringExtra("segundo");

textView. setText(resultado);

}

}

super.textView.setText(resultado);

super.textView.setText( result)onActivityResult(requestCode, resultCode, data);

}

2. Código en la clase SecondActivity:

RESULT_CODE y intent corresponden al código anterior. El segundo y tercer parámetro del método onActivityResult().

final int RESULT_CODE=101;

public void closeButton(Ver vista) {

Intención intención=nueva Intención(); intent.putExtra(" segundo", "¡Soy el segundo!");

setResult(RESULT_CODE,

terminar(); /p>

3. Además, el segundo parámetro resultCode en el método onActivityResult() tiene el propio código de resultado del sistema. resultCode también tiene algunos parámetros que vienen con el sistema, es decir, si la intención que iniciamos es una intención implícita, podemos usar RESULT_OK en la clase Actividad para indicar que la operación finalizó exitosamente.

Por ejemplo, el valor de retorno de llamar a la biblioteca del sistema, consulte el código:

final int CROP_PIC_REQUESTCODE = 23

final int SELECT_PICTURE = 21;

if (resultCode == RESULT_OK amp; amp; requestCode == SELECT_PICTURE) {

System.out.println("Llame a la biblioteca para regresar, cierre la actividad"); /p>

Intent intent1 = new Intent("com.android. camera.action.CROP");

intent1.setDataAndType(data.getData(), "image/*");

intent1 .putExtra("crop", "true");

intent1 .putExtra("aspectX", 1);

intent1.putExtra("aspectY ", 1);

p>

intent1.putExtra("salidaX", 80);

intent1.putExtra("salidaY ", 80);

intent1.putExtra("return-data" , true);

startActivityForResult(intent1, CROP_PIC_REQUESTCODE);

}

Por supuesto que podemos También vea contenido similar a RESULT_OK en el código fuente.

/** Resultado de la actividad estándar: operación cancelada. */

public static final int RESULT_CANCELED = 0;

/** Resultado de la actividad estándar: operación exitosa. */

public static final int RESULT_OK = -1;

/** El inicio del resultado de la actividad definida por el usuario. */

public static final int RESULT_FIRST_USER = 1;

Resumen: inicialmente, solo quería usar la intención explícita para iniciar la actividad, pero luego extendí la intención implícita al iniciarla. el evento yo mismo.

En resumen, cuando te encuentras con un problema, debes pensar más y no ceñirte a un punto determinado, para que realmente puedas progresar. Usted mismo puede lograr un verdadero progreso.

Si tiene mejores sugerencias y opiniones, asegúrese de presentarlas y aprender unos de otros, que es nuestro mayor deseo para el progreso de los fanáticos de la tecnología. ¡Estoy feliz de compartirlas con ustedes!