¿Pasar un paquete en startActivity()?
¿Cuál es la forma correcta de pasar un paquete a la actividad que se inicia desde el actual? ¿Propiedades compartidas?
Tienes pocas opciones:
1) Utilice el paquete de la intención :
Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);
2) Crea un nuevo paquete
Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);
3) Utilice el método de acceso directo putExtra() del Intent
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);
Luego, en la Actividad iniciada, los leerá a través de:
String value = getIntent().getExtras().getString(key)
NOTA: Los paquetes tienen métodos "obtener" y "poner" para todos los tipos primitivos, Parcelables y Serializables. Solo utilicé Strings con fines demostrativos.
Puedes usar el paquete de Intent:
Bundle extras = myIntent.getExtras();
extras.put*(info);
O un paquete completo:
myIntent.putExtras(myBundle);
¿Es esto lo que estás buscando?
Pasar datos de una actividad a otra en Android
Una intención contiene la acción y, opcionalmente, datos adicionales. Los datos se pueden pasar a otra actividad utilizando putExtra()
el método de intención. Los datos se pasan como extras y son key/value pairs
. La clave es siempre una cadena. Como valor puedes usar los tipos de datos primitivos int, float, chars, etc. También podemos pasar Parceable and Serializable
objetos de una actividad a otra.
Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);
Recuperar datos del paquete de la actividad de Android
Puede recuperar la información utilizando getData()
métodos en el objeto Intent. El objeto Intent se puede recuperar mediante el getIntent()
método.
Intent intent = getIntent();
if (null != intent) { //Null Checking
String StrData= intent.getStringExtra(KEY);
int NoOfData = intent.getIntExtra(KEY, defaultValue);
boolean booleanData = intent.getBooleanExtra(KEY, defaultValue);
char charData = intent.getCharExtra(KEY, defaultValue);
}
Puede pasar valores de una actividad a otra utilizando el paquete. En su actividad actual, cree un paquete, configúrelo para el valor particular y páselo a la intención.
Intent intent = new Intent(this,NewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(key,value);
intent.putExtras(bundle);
startActivity(intent);
Ahora en tu NewActivity, puedes obtener este paquete y recuperar su valor.
Bundle bundle = getArguments();
String value = bundle.getString(key);
También puedes pasar datos a través de la intención. En su actividad actual, establezca una intención como esta,
Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);
Ahora, en tu NewActivity, puedes obtener ese valor a partir de una intención como esta:
String value = getIntent().getExtras().getString(key);