¿Qué es un bundle
en una aplicación de Android? Cuándo usarlo?¿Qué es un "paquete" en una aplicación de Android
Respuesta
Los paquetes se utilizan generalmente para pasar datos entre varias actividades de Android. Depende de usted qué tipo de valores desea aprobar, pero los paquetes pueden contener todos los tipos de valores y pasarlos a la nueva actividad.
Se puede utilizar la siguiente manera:
Intent intent = new...
Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("myKey", AnyValue);
startActivity(intent);
, usted puede obtener los valores que pasa haciendo:
Bundle extras = intent.getExtras();
String tmp = extras.getString("myKey");
Puede encontrar más información en:
El paquete se usa para pasar datos entre Actividades. Puede crear un paquete, pasarlo a Intención que inicia la actividad que luego se puede usar desde la actividad de destino.
Gsree gracias ,, cuál es el papel de la intención – User
También es utilizado por una actividad para guardar y recuperar su estado cuando se apaga y reiniciado (como cuando se gira el dispositivo). –
@Tushar Compruebe el enlace en la respuesta de @Ted Hopp. Eso explicará más sobre Intención y Actividades. – GSree
Los paquetes se pueden utilizar para enviar datos arbitrarios de una actividad a otra por medio de Intents. Cuando transmita un Intento, las Actividades interesadas (y otros BroadcastRecievers) serán notificados de esto. Un intento puede contener un paquete para que pueda enviar datos adicionales junto con el Intento.
Los lotes son correlaciones de valores-clave, por lo que en cierta forma son como un Hash, pero no están estrictamente limitados a un solo mapeo de objeto String/Foo. Tenga en cuenta que solo ciertos tipos de datos se consideran "Parcelable" y están explícitamente detallados en la API Bundle.
Esta es la única respuesta hasta ahora para acercarse realmente a la pregunta del OP, es decir, qué es un paquete. http://stackoverflow.com/a/6236801/1588163 brinda más información. – clapas
¿Por qué usar un paquete si solo podemos usar un mapeo? ¡Gracias! –
@RuchirBaronia no hay ninguna razón especial para usar un paquete a menos que pretenda pasarlo a una parte de la API de Android que requiere objetos Bundle. – scriptocalypse
A Bundle
es muy parecido a un objeto Java Map
que asigna claves String
a los valores. Se usa para pasar información entre actividades y otros componentes de la aplicación. También lo utiliza el marco para capturar y restaurar información de estado.
El motivo por el que Android no usa objetos antiguos simples Map
es Map
demasiado flexible; puede contener objetos (como, por ejemplo, flujos de E/S) que no se pueden serializar. La API Bundle
restringe los tipos de objetos que se pueden agregar a un paquete de modo que se garantiza que los contenidos del paquete sean serializables. El marco Android se basa en esta propiedad.
Le sugiero que lea la documentación en Application Fundamentals. Esto explica, entre otras cosas, qué paquetes e intenciones son y para qué se utilizan.
¿Por qué usar un paquete si solo podemos usar un mapeo? Gracias Ted! –
@RuchirBaronia: la API utiliza 'Bundle' en varios lugares donde no se puede usar un' Map'. Por ejemplo, si va a usar un 'Intento', puede pasar datos adicionales usando' Bundle' (con 'putExtra (String, Bundle)' o 'putExtras (Bundle)'. No hay API para pasar un ' Map' (que puede contener fácilmente datos no serializables) con un 'Intento'. –
¿No podemos hacer' putExtra (MapObj) '? Gracias –
Tengo que añadir 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 la actividad se destruye. Más tarde, se crea otra instancia de la actividad y se llama al 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 algún negocio iniciado por su predecesor.
Android guarda automáticamente el texto en campos de texto, pero no guarda todo, y a veces aparecen errores sutiles.
El antipatrón más común, sin embargo, supone que onCreate()
hace la inicialización. Está mal, porque también debe restaurar el estado.
Existe la opción de desactivar este comportamiento de "volver a crear actividad en rotación", pero no evitará errores relacionados con el reinicio, solo los hará más difíciles de mencionar.
Tenga en cuenta también que el único método cuya llamada está garantizada cuando se destruirá la actividad es onPause()
. (Véase el gráfico de ciclo de vida actividad en los docs.)
¿Por qué usar un paquete si solo podemos usar un mapeo? Gracias Ted! –
Bundle no solo es utilizado por Activity. También es utilizado por Fragment para preservar estados después de rotar. –
datos pasan entre las actividades de mediante el uso de Bundle
y Intent
objetos.
Su primera crear un objeto Bundle
Bundle b = new Bundle();
A continuación, asociar los datos de cadena almacenados en anystring
con el paquete clave "myname"
b.putString("myname", anystring);
Ahora, cree un objeto Intent
Intent in = new Intent(getApplicationContext(), secondActivity.class);
Pass haz objeto b
a la intención
in.putExtras(b);
y empezar a segunda actividad
startActivity(in);
En la segunda actividad, tenemos que acceder a los datos que se pasan de la primera actividad
Intent in = getIntent();
Ahora, usted que obtener los datos del paquete
Bundle b = in.getExtras();
Por último, obtener el valor de los datos de cadena asociados con la clave denominada "myname"
String s = b.getString("myname");
paquete se utiliza para compartir datos entre las actividades, y para guardar el estado de aplicación en el método OnCreate() para que la aplicación se llega a saber en que se detuvo ... espero que ayude :)
Basta con crear 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 el "this_is_the_next_class.class"
Se pueden recoger los artículos como esto.
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);
uso del paquete enviar datos de una actividad a otra actividad con la ayuda del objeto intent; El paquete contiene los datos que pueden ser de cualquier tipo.
Ahora le digo que cómo crear paquetes que pasan datos entre dos actividades.
Paso 1: En primer lugar la actividad
Bundle b=new Bundle();
b.putString("mkv",anystring);
Intent in=new Intent(getApplicationContext(),secondActivity.class);
in.putExtras(b);
startActivity(in);
Paso 2: En segundo lugar Actividad
Intent in=getIntent();
Bundle b=in.getExtras();
String s=b.getString("mkv");
creo que esto es útil para usted ...........
El paquete no es solo para transferir datos entre dos componentes diferentes, sino que se usa 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 ListView
.
Paquete: - Un mapeo de valores de Cadena a varios tipos Parcelable.
Bundle se usa generalmente para pasar datos entre diversas actividades de Android.
cuando llamamos aPause() y luego a OnStop() y luego en orden inverso a Detener() a onPause().
Los datos guardados que el sistema usa para restaurar el estado anterior se llaman "estado de instancia" y son una colección de pares clave-valor almacenados en un objeto Bundle.
Un mapeo, es la naturaleza del paquete. – BollMose
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 acción:
String food = getIntent().getExtras().getString("food");
Boolean rb = getIntent().getExtras().getBoolean("rb");
Es posible que también desee obtener más información sobre [Ejemplos mínimos, completos y verificables] (http://stackoverflow.com/help/mcve). –
- 1. ¿Qué es el paquete GSF de Android?
- 2. paquete de aplicaciones múltiples en una aplicación
- 3. ¿Es posible desinstalar mediante programación un paquete en Android
- 4. ¿Qué es un widget en Android?
- 5. Paquetes múltiples en una aplicación de Android
- 6. ¿Qué es una "aplicación" en Django?
- 7. Paquete de una aplicación Node.js como una aplicación osx
- 8. Android paquete de compatibilidad
- 9. ¿Qué es una aplicación multiproceso?
- 10. ¿Qué es "android: allowBackup"?
- 11. ¿Qué es UID en Android?
- 12. ¿Es Hibernate una exageración para una aplicación de Android?
- 13. ¿Qué es un ORM en una aplicación web?
- 14. ¿Qué es el paquete _root_ en Scala?
- 15. ¿Qué es SharedPreferences en Android?
- 16. ¿Qué es el paquete de contenido hospedado en Application Loader?
- 17. Android: ¿Qué es mejor, desarrollar la aplicación de Android en un Mac o una PC de Windows?
- 18. ¿Qué es el paquete jQuery de TinyMCE?
- 19. ¿Qué es una "aplicación asesina" de Scala?
- 20. ¿Qué es una ventana de Android?
- 21. ¿Cómo distribuir el código reutilizable de Android en un paquete?
- 22. Comprender qué actividad comienza primero en una aplicación de Android
- 23. ¿Sufijo de identificación del paquete? ¿Qué es?
- 24. ¿Por qué es posible escribir una matriz booleana en un paquete pero no un booleano?
- 25. ¿El nombre de un paquete es único para las aplicaciones?
- 26. Android Marketplace: Cambio del paquete de la aplicación
- 27. Cómo llamar a una aplicación Android desde otra aplicación Android
- 28. ¿Qué es un dominio de aplicación .NET?
- 29. ¿Cuál es el diseño inflado en una aplicación de Android?
- 30. Aplicación de chat: qué tecnología es mejor implementar la aplicación de chat en Android
¿por qué no usar directamente System.object y cast? – lovespring