2010-10-03 5 views
61

Mam tablicę liczb całkowitych w działalności A:Wysyłanie tablice z Intent.putExtra

int array[] = {1,2,3}; 

I chcę, aby wysłać tę zmienną do działalności B, więc tworzę nową intencję i użyć metody putExtra :

Intent i = new Intent(A.this, B.class); 
i.putExtra("numbers", array); 
startActivity(i); 

W działalności BI uzyskać informację:

Bundle extras = getIntent().getExtras(); 
int arrayB = extras.getInt("numbers"); 

Ale to nie jest tak naprawdę wysyłania tablicę, po prostu dostać wartość "0" w tablicyB. Szukałem kilku przykładów, ale niczego nie znalazłem.

+2

Odpowiedź Potrzebowałem był w swoim pytaniu. W ten sposób użyłem '.getExtras()' potrzebowałem. – MikeyE

Odpowiedz

81

Ustawiasz dodatkowe za pomocą tablicy. Następnie próbujesz uzyskać jedną int.

Twój kod powinien być:

int[] arrayB = extras.getIntArray("numbers"); 
+4

Ouch! Skoncentrowałem się na składni putExtra i getExtras, które nie zdawały sobie sprawy z tego, że pomyłka była tak oczywista: D Dziękuję! – Kitinz

+0

@Kitinz +1 za bycie bardzo miłym dla społeczności ... Podobało mi się to :) – Adnan

-2
final static String EXTRA_MESSAGE = "edit.list.message"; 

Context context; 
public void onClick (View view) 
{ 
    Intent intent = new Intent(this,display.class); 
    RelativeLayout relativeLayout = (RelativeLayout) view.getParent(); 

    TextView textView = (TextView) relativeLayout.findViewById(R.id.textView1); 
    String message = textView.getText().toString(); 

    intent.putExtra(EXTRA_MESSAGE,message); 
    startActivity(intent); 
} 
+1

Myślę, że poznasz po obejrzeniu tego kodu, gdzie popełniłeś błąd ...... :) –

+1

oczywiście nie pal – Wadester

7

Ten kod wysyła tablica całkowitej wartości

Inicjalizacja tablicy Lista

List<Integer> test = new ArrayList<Integer>(); 

Dodaj wartości do listy tablicy

test.add(1); 
test.add(2); 
test.add(3); 
Intent intent=new Intent(this, targetActivty.class); 

Wyślij wartości listy tablicy kierować Aktywność

intent.putIntegerArrayListExtra("test", (ArrayList<Integer>) test); 
startActivity(intent); 

tu masz wartości na targetActivty

Intent intent=getIntent(); 
ArrayList<String> test = intent.getStringArrayListExtra("test");