2010-10-27 10 views
8

Merhaba ben başka bir Arraylistactivity itibaren geçmek istiyorum. Ben putStringArrayListExtra() kullanabilirsiniz, ancak bir hata gösterir: "The method putStringArrayListExtra(String,ArrayList is undefined for the type bundle." herhangi bir başka yöntem ArrayList geçirmek için mevcut mudur?putStringArrayListExtra kullanarak ArrayList geçmek Nasıl()

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); 

cevap

8

deneyin ekstraları içinde ArrayList 1-D dizi geçirilecek

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

ArrayList/1-D'yi 1-D Diziyi 2-d dizisi dönüştürmek ve üzeri gönderebilirsiniz sen ... seri hale getirme kullanılarak veya kendisini ArrayList kullanarak başka bir etkinliğe çok boyutlu bir dizi geçirilecek lütfen bana .. – Miya

+0

Maneesh ederiz ekstralar ve diğer aktivitelerde 2-d dizisine dönüşür. Bir çözüm gönderildi. Lütfen aynı kontrol edin. – Maneesh

1

Dize türü ArrayList tanımlamanız gerekir. Eğer putStringArrayListExtra içinde Jenerik ArrayList geçemez. Aşağıda doğru kodudur.

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

Şimdi bu gibi diğer aktivitede bu ArrayList erişin. birinin altında

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

Maneesh, sana bana verdi çözüm kullandı. Ama yine de there.That kalan sorun, bu ArrayList 1-boyutlu dizi geçmek zorunda olduğu. ekstralar ArrayList içinde ArrayList 1-D dizi geçirilecek bu tek boyutlu bir dizi listelemek için ya da başka bir etkinliğe 2 Boyutlu dizi geçirilecek .. birinin altında – Miya

+0

deneyin geçmek nasıl söyle al = new ArrayList (); Dizi arr [] = {"Sıfır", "Bir", "İki"}; // koleksiyonu Koleksiyon l dize dizisi dönüştürme = Arrays.asList (arr); al.addAll (l); i.putStringArrayListExtra ("ar", al); – Maneesh

3

İlk Etkinlik:

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); 

İkinci Aktivite:

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

bu Deneyin

benim için çalıştı

1 Etkinlik

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); 

2 Etkinlik

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