¿Pasar un paquete en startActivity ()?

Respuestas:

425

Tienes pocas opciones:

1) Use el paquete de la intención :

Intent mIntent = new Intent(this, Example.class);
Bundle extras = mIntent.getExtras();
extras.putString(key, value);  

2) Crear un nuevo paquete

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);

3) Use el método de acceso directo putExtra () de la intención

Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(key, value);


Luego, en la Actividad lanzada, los leería a través de:

String value = getIntent().getExtras().getString(key)

NOTA: Los paquetes tienen métodos "get" y "put" para todos los tipos primitivos, Parcelables y Serializables. Acabo de usar cadenas para fines de demostración.

Jeremy Logan
fuente
20

Puedes usar el paquete desde la intención:

Bundle extras = myIntent.getExtras();
extras.put*(info);

O un paquete completo:

myIntent.putExtras(myBundle);

¿Es esto lo que estás buscando?

DustinB
fuente
1
Y desde la intención resultante, llama a getIntent (). GetExtras (). Get * () para obtener lo que se ha almacenado antes.
yanchenko
16

Transferencia de 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 el putExtra()método de intención . Los datos se pasan como extras y son key/value pairs. La clave siempre es una cadena. Como valor puede usar los tipos de datos primitivos int, float, chars, etc. También podemos pasar Parceable and Serializableobjetos de una actividad a otra.

Intent intent = new Intent(context, YourActivity.class);
intent.putExtra(KEY, <your value here>);
startActivity(intent);

Recuperando datos de 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 a través del 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); 
  }
IntelliJ Amiya
fuente
6

Puede pasar valores de una actividad a otra con el Paquete. En su actividad actual, cree un paquete y establezca el paquete para el valor particular y pase ese paquete 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 su NewActivity, puede obtener este paquete y recuperar su valor.

Bundle bundle = getArguments();
String value = bundle.getString(key);

También puede 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 su Nueva Actividad, puede obtener ese valor de una intención como esta,

String value = getIntent().getExtras().getString(key);
Neha Mehta
fuente
¿Por qué usar un paquete mientras el objeto de intención tiene los métodos getExtra y putExtra?
Psicosis404
0

Escribe esta es la actividad en la que te encuentras:

Intent intent = new Intent(CurrentActivity.this,NextActivity.class);
intent.putExtras("string_name","string_to_pass");
startActivity(intent);

En NextActivity.java

Intent getIntent = getIntent();
//call a TextView object to set the string to
TextView text = (TextView)findViewById(R.id.textview_id);
text.setText(getIntent.getStringExtra("string_name"));

Esto funciona para mí, puedes probarlo.

Fuente: https://www.c-sharpcorner.com/article/how-to-send-the-data-one-activity-to-another-activity-in-android-application/

trustidkid
fuente
0

puedes usar este código en tu primera actividad :

 Intent i = new Intent(Context, your second activity.class);
        i.putExtra("key_value", "your object");
        startActivity(i);

y obtener objeto en la segunda actividad :

 Intent in = getIntent();
    Bundle content = in.getExtras();
   // check null
        if (content != null) {
            String content = content_search.getString("key_value"); 
    }
Pouria Hemati
fuente