2010-12-13 5 views
22

Mam 2 ciąg tablic ciągów wewnątrz pierwszej aktywności - A, teraz muszę przekazać obie tablice do second_activity - B, jak to zrobić?Przekazywanie tablicy ciągów między operacjami na Androidzie

wiem o rodzaju Intent koncepcji w Androidzie i przeszedł już wartość tylko jednej zmiennej do innej działalności, ale nie mam realizować koncepcję przekazywania tablic ciągów między działaniami, mam już nadmiar netto za ten sam .

pls daj mi znać o możliwym rozwiązaniu.

Odpowiedz

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


nadzieję, że to pomoże.

Aby przeczytać:

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

@viv Dzięki za szybką obsługą, ale można proszę dać mi znać o „klucz”, jest to pojedyncza wartość lub tablica ? pls –

+0

to tylko nazwa, z którą chcesz przechwycić tablicę w innej aktywności ...... np: tablica1 lub tablica2: więc będziesz łapał ją pod tą nazwą tylko w innej działalności ...... – viv

+0

@viv ya zrobiłem, co należy zrobić, aby przeczytać pakiet w Second activity? –

3

Intents przenoszenia danych na mapie klucz-wartość, gdzie „klucz” jest identyfikatorem String name, aby wybrać podczas zapisywania danych do intencyjny. Czytając te dane, żądasz tego samego "klucza". Możesz przechowywać różne typy danych w jednym celu.

+0

ya popełniłem głupią pomyłkę, zadając pytanie dotyczące "klucza", tak na marginesie dla wsparcia –

4

Nie bezpośrednio odpowiedź na pytanie, ale można również użyć .putStringArrayListExtra() w pakiecie. Jest bardziej elastyczny niż wysyłanie tablicy łańcuchów.

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

Następnie można dostać ten ArrayList w następujący sposób:

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

Tak, to nie jest odpowiedź na pytanie dokładnie, ale tak, możemy użyć tego alternatywnego rozwiązania. BTW, pytanie ma prawie 4 lata :-) –

+0

@PareshMayani Wiem, że jest stary Muszę przekazać dane ciągów przez dwie czynności, które były dynamiczne, więc tablica stringów byłaby nieskuteczna, ponieważ nie mogliśmy zmienić rozmiaru, to było rozwiązanie moje pytanie i chciałem się nim podzielić. –

+0

@PareshMayani po czterech latach natrafiłeś na jakieś nowe rozwiązanie? –