2010-10-27 15 views
8

Hola, quiero pasar un Arraylist de un activity a otro. Yo uso putStringArrayListExtra(), pero muestra un error: "The method putStringArrayListExtra(String,ArrayList is undefined for the type bundle." ¿Hay algún otro método disponible para pasar ArrayList?Cómo pasar ArrayList usando putStringArrayListExtra()

String test[]=new String[3]; 
    ArrayList<String[]> al=new ArrayList<String[]>(); 
    int x,y; 
    test[0]="1"; 
    test[1]="2"; 
    test[2]="3"; 
    al.add(test); 

      test = new String[3]; 
      test[0]="4"; 
      test[1]="5"; 
      test[2]="6"; 
      al.add(test); 

      Bundle list_bundle=new Bundle(); 
      list_bundle.putStringArrayListExtra("lists",al); 
      Intent list_intent= new Intent(v.getContext(), view_all_selected.class); 
      list_intent.putExtras(list_bundle); 
      startActivityForResult(list_intent, 2); 

Respuesta

8

intento por debajo de un pase serie 1-D para arrayList en extras

ArrayList<String> al = new ArrayList<String>(); 
String arr[] = {"Zero", "One", "Two"}; 
//Convert string array to a collection 
Collection l = Arrays.asList(arr); 
al.addAll(l); 
i.putStringArrayListExtra("ar", al); 
+0

Gracias maneesh .. ¿Puede por favor decirme cómo pasar una matriz multidimensional a otra actividad utilizando serialización o usando ArrayList en sí ... – Miya

+0

Puede convertir Array 2-d a ArrayList/1-D Array 1-D y enviar vía extras y en otra actividad reconvertir en una matriz de 2 d. Publicado una solución. Por favor revisa lo mismo. – Maneesh

1

tiene que definir ArrayList de tipo String. no puede pasar Geray ArrayList en putStringArrayListExtra. A continuación se muestra el código correcto.

----- 
ArrayList<String> al = new ArrayList<String>(); 
------ 
------- 
list_bundle.putStringArrayListExtra("lists",al); 
------ 

Ahora acceder a esta ArrayList en otra actividad como esta.

ArrayList<String> cl= new ArrayList<String>(); 
cl =getIntent().getExtras().getStringArrayList("lists"); 
+0

maneesh, he utilizado la solución que diste a mí. Pero el problema aún permanece allí. Es decir, tengo que pasar una matriz de 1 dimensión a este ArrayList. Por favor, dígame cómo pasar esta matriz unidimensional para listar o pasar una matriz bidimensional a otra actividad. – Miya

+0

intente debajo de uno para pasar matriz 1-D a Lista de archivos en extras ArrayList al = new ArrayList (); String arr [] = {"Cero", "Uno", "Dos"}; // Convertir cadena matriz a una colección Colección l = Arrays.asList (arr); al.addAll (l); i.putStringArrayListExtra ("ar", al); – Maneesh

3

Primera Actividad:

ArrayList<String> al = new ArrayList<String>(); 
    int ROWS = 2; 
         int COLS = 1; 
         String[][] a2 = new String[ROWS][COLS]; 
         a2[0][0]="one"; 
         a2[1][0]="two"; 
         for(int i=0;i<ROWS;i++) 
         { 
          for(int j=0;j<COLS;j++) 
          { 
           al.add(a2[i][j]); 
          } 
         } 
    i.putStringArrayListExtra("ar", al); 
         i.putExtra("ROWS", ROWS); 
         i.putExtra("COLS", COLS); 

Segunda Actividad:

ArrayList<String> test = new ArrayList<String>(); 
test=getIntent().getExtras().getStringArrayList("ar"); 
     int ROWS=getIntent().getExtras().getInt("ROWS"); 
     int COLS=getIntent().getExtras().getInt("COLS"); 
     String[][] a2 = new String[ROWS][COLS]; 
     int index=0; 
     for(int i=0;i<ROWS;i++) 
     { 
      for(int j=0;j<COLS;j++) 
      { 
       a2[i][j]=test.get(index++); 
      } 
     } 
9

Prueba esto se trabajado para mí

primera actividad

ArrayList<String> ar=new ArrayList<String>(); 
ar.add("Apple"); 
ar.add("Banana"); 

Intent i=new Intent(this,Route.class); 
i.putStringArrayListExtra("list", ar); 
startActivity(i); 

segunda actividad

ArrayList<String> ar1=getIntent().getExtras().getStringArrayList("list"); 
Cuestiones relacionadas