Pregunta

¿Cuál es la forma correcta de pasar un paquete para la actividad que se está lanzando a la actual? propiedades compartidas?

¿Fue útil?

Solución

Usted tiene algunas opciones:

1) Usar el Bundle 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) Utilizar el putExtra () método acceso directo de la Intención

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


A continuación, en la Actividad lanzado, sería leerlos a través de:

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

Nota: Los paquetes tienen "get" y "put" para todos los métodos de los tipos primitivos, Parcelables y Serializables. Acabo de utilizar cadenas para demonstración.

Otros consejos

Puede utilizar el paquete de la Intención:

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

o todo un paquete:

myIntent.putExtras(myBundle);

Es esto lo que está buscando?

Al pasar datos de una actividad a otra en Android

Una intención contiene la acción y los datos opcionalmente adicionales. Los datos se pueden pasar a otra actividad utilizando el método putExtra() intención. Los datos se pasan como extras y se key/value pairs. La clave es siempre una cadena. Como valor se puede utilizar la primitiva tipos de datos int, float, caracteres, etc. También podemos pasar a Parceable and Serializable objetos de una actividad a otra.

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

Recuperación de datos de paquete de la actividad androide

Puede recuperar la información mediante getData() métodos del objeto de Intención. La Intención objeto puede ser recuperada a través de la método getIntent().

 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 actividad utilizando el paquete. En su actividad actual, crear un paquete y configurar el paquete para el valor particular y pasar 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);

En su NewActivity, puede obtener este paquete y retrive su valor.

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

También puede pasar los datos a través de la intención. En su actividad actual, establecer la intención de esta manera,

Intent intent = new Intent(this,NewActivity.class);
intent.putExtra(key,value);
startActivity(intent);

En su NewActivity, se puede conseguir que el valor de la intención de esta manera,

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

Escribir esto es la actividad que está en:

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

En el 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í, puede intentarlo.

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

puede utilizar 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 segunda actividad :

 Intent in = getIntent();
    Bundle content = in.getExtras();
   // check null
        if (content != null) {
            String content = content_search.getString("key_value"); 
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top