studio que intent example describecontents app android bundle android-bundle

intent - ¿Qué es un "paquete" en una aplicación de Android?



parcelable android (12)

Bundle se utiliza para pasar datos entre las actividades. Puede crear un paquete, pasarlo a Intención que inicie la actividad que luego se puede usar desde la actividad de destino.

¿Qué es un bundle en una aplicación de Android? ¿Cuándo usarlo?


El paquete no solo es para transferir datos entre dos componentes diferentes sino que, lo que es más importante, se utiliza para restaurar los valores almacenados antes de que la actividad se destruya en una nueva actividad.

como el texto en un widget EditText o la posición de desplazamiento de un ListView .


El paquete se utiliza para compartir datos entre actividades y para guardar el estado de la aplicación en el método oncreate () para que la aplicación pueda saber dónde se detuvo ... Espero que ayude :)


Los paquetes se pueden utilizar para enviar datos arbitrarios de una actividad a otra por medio de Intentos. Cuando emita una Intención, se notificará esto a las Actividades interesadas (y a otros BroadcastRecievers). Un intento puede contener un paquete para que pueda enviar datos adicionales junto con el intento.

Los paquetes son asignaciones de valor-clave, por lo que en cierto modo son como un Hash, pero no están estrictamente limitados a una única asignación de objetos String / Foo. Tenga en cuenta que solo ciertos tipos de datos se consideran "Parcelable" y se explicitan explícitamente en la API del paquete.


Los paquetes se utilizan generalmente para pasar datos entre varias actividades de Android. Depende de qué tipo de valores quiera pasar, pero los paquetes pueden contener todo tipo de valores y pasarlos a la nueva actividad.

Puedes usarlo así:

Intent intent = new... Intent(getApplicationContext(), SecondActivity.class); intent.putExtra("myKey", AnyValue); startActivity(intent);

Puedes obtener los valores pasados ​​haciendo:

Bundle extras = intent.getExtras(); String tmp = extras.getString("myKey");

Puedes encontrar más información en:


Paquete: - Una asignación de valores de cadena a varios tipos parcelables.

Bundle se utiliza generalmente para pasar datos entre varias actividades de Android.

cuando invocamos onPause () luego onStop () y luego en orden inverso onStop () a onPause ().

Los datos guardados que el sistema utiliza para restaurar el estado anterior se denominan "estado de instancia" y son una colección de pares de clave-valor almacenados en un objeto Bundle.


Primera actividad:

String food = (String)((Spinner)findViewById(R.id.food)).getSelectedItem(); RadioButton rb = (RadioButton) findViewById(R.id.rb); Intent i = new Intent(this,secondActivity.class); i.putExtra("food",food); i.putExtra("rb",rb.isChecked());

Segunda actividad:

String food = getIntent().getExtras().getString("food"); Boolean rb = getIntent().getExtras().getBoolean("rb");


Solo crea un paquete,

Bundle simple_bundle=new Bundle(); simple_bundle.putString("item1","value1"); Intent i=new Intent(getApplicationContext(),this_is_the_next_class.class); i.putExtras(simple_bundle); startActivity(i);

EN "this_is_the_next_class.class"

Puede recuperar los elementos como este.

Intent receive_i=getIntent(); Bundle my_bundle_received=receive_i.getExtras(); my_bundle_received.get("item1"); Log.d("Value","--"+my_bundle_received.get("item1").toString);


Tengo que agregar que los paquetes son utilizados por las actividades para pasar datos a sí mismos en el futuro.

Cuando la pantalla gira, o cuando se inicia otra actividad, se invoca el método protected void onSaveInstanceState(Bundle outState) y se destruye la actividad. Más adelante, se crea otra instancia de la actividad y se public void onCreate(Bundle savedInstanceState) . Cuando se crea la primera instancia de actividad, el paquete es nulo; y si el paquete no es nulo, la actividad continúa algunos negocios iniciados por su predecesor.

Android guarda automáticamente el texto en los campos de texto, pero no lo guarda todo, y a veces aparecen errores sutiles.

El anti-patrón más común, sin embargo, es asumir que onCreate() hace solo la inicialización. Está mal, porque también debe restaurar el estado.

Hay una opción para deshabilitar este comportamiento de "recrear actividad en rotación", pero no evitará los errores relacionados con el reinicio, solo hará que sean más difíciles de mencionar.

Tenga en cuenta también que el único método cuya llamada está garantizada cuando la actividad se va a destruir es onPause() . (Ver el gráfico del ciclo de vida de la actividad en los documentos).


Un Bundle es muy parecido a un objeto de Map Java que asigna claves de String a valores. Se utiliza para pasar información entre actividades y otros componentes de la aplicación. También es utilizado por el marco para capturar y restaurar información de estado.

La razón por la que Android no usa objetos de Map antiguos para esto es que el Map es demasiado flexible; puede contener objetos (como, por ejemplo, flujos de E / S) que no pueden ser serializados. La API del Bundle restringe los tipos de objetos que se pueden agregar a un paquete de tal manera que se garantice que los contenidos del paquete sean serializables. El marco de Android se basa en esta propiedad.

Le sugiero que lea la documentación sobre Fundamentos de la aplicación . Esto explica, entre otras cosas, qué son los paquetes y las intenciones y para qué se utilizan.


uso del paquete de envío de datos de una actividad a otra actividad con la ayuda del objeto de intención; Bundle contiene los datos que pueden ser de cualquier tipo.

Ahora les digo que cómo crear paquetes que pasan datos entre dos actividades.

Paso 1: En la primera actividad

Bundle b=new Bundle(); b.putString("mkv",anystring); Intent in=new Intent(getApplicationContext(),secondActivity.class); in.putExtras(b); startActivity(in);

Paso 2: En la segunda actividad

Intent in=getIntent(); Bundle b=in.getExtras(); String s=b.getString("mkv");

Creo que esto es útil para ti ...........


Pasar datos entre actividades utilizando objetos Bundle e Intent .

Tu primer crea un objeto Bundle

Bundle b = new Bundle();

Luego, asocie los datos de cadena almacenados en cualquier anystring con la clave de paquete "myname"

b.putString("myname", anystring);

Ahora, crea un objeto Intent

Intent in = new Intent(getApplicationContext(), secondActivity.class);

Pase el objeto b paquete a la intención

in.putExtras(b);

y comenzar la segunda actividad

startActivity(in);

En la segunda actividad, tenemos que acceder a los datos pasados ​​desde la primera actividad.

Intent in = getIntent();

Ahora, necesitas obtener los datos del paquete

Bundle b = in.getExtras();

Finalmente, obtenga el valor de los datos de cadena asociados con la clave llamada "myname"

String s = b.getString("myname");