2010-12-13 12 views
22

Estoy teniendo 2 matrices de cadenas dentro Primera actividad - A, ahora tengo que pasar ambas matrices a la segunda_actividad - B, ¿cómo lo hago?Al pasar una matriz de cadenas entre las actividades de Android

que sé sobre el Intent tipo de concepto en Android y ya ha pasado un solo valor de la variable simplemente a otra actividad, pero no he poner en práctica el concepto de pasar matrices de cadenas entre las actividades, ya he navegado neto para el mismo .

por favor hágamelo saber acerca de la posible solución.

Respuesta

68
Bundle b=new Bundle(); 
b.putStringArray(key, new String[]{value1, value2}); 
Intent i=new Intent(context, Class); 
i.putExtras(b); 


Hope esto le ayudará.

Para leer:

Bundle b=this.getIntent().getExtras(); 
String[] array=b.getStringArray(key); 
+0

@viv gracias por el apoyo rápido, pero puede usted por favor hágamelo saber acerca de "clave", que es un solo valor o una matriz ? pls –

+0

es solo un nombre con el que desea capturar su matriz en otra actividad ... por ejemplo: array1 o array2: por lo que solo lo captará con este nombre en otra actividad ...... – viv

+0

@viv ya he hecho, ¿qué se debe hacer para leer el paquete en la segunda actividad? –

3

Intentos transportan datos en un mapa de clave-valor, donde 'clave' es un identificador String nombre que elija al almacenar los datos en la Intención. Al leer esos datos, solicita la misma 'clave'. Puede almacenar varios tipos de datos en una sola Intención.

+0

ya estaba cometiendo un error tonto al hacer una pregunta sobre "clave", por cierto thanx para el soporte –

4

No es una respuesta directa a la pregunta, pero también puede usar .putStringArrayListExtra() en su paquete. Es más flexible que enviar una matriz de cadenas.

Bundle b=new Bundle(); 
b.putStringArrayListExtra("URL_ARRAY_LIST", 
         myStringArrayList); 
Intent i=new Intent(context, Class); 
i.putExtras(b); 

entonces se puede obtener esta arrayList de la siguiente manera:

ArrayList<String> urls; 
urls = getIntent().getStringArrayListExtra("URL_ARRAY_LIST"); 
+1

Sí, no es una respuesta de la pregunta exactamente, pero sí, podemos utilizar esta solución alternativa. Por cierto, la pregunta es casi 4 años :-) –

+0

@PareshMayani Sé que es viejo. Necesito pasar datos de cadena a través de dos actividades que eran dinámicas, por lo que el conjunto de cadenas sería ineficiente ya que no podíamos modificar el tamaño, esta era la solución. mi pregunta y quería compartirla. –

+0

@PareshMayani después de cuatro años, ¿se encontró con alguna solución nueva? –

Cuestiones relacionadas