Sending arrays with Intent.putExtra

146,664

Solution 1

You are setting the extra with an array. You are then trying to get a single int.

Your code should be:

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

Solution 2

This code sends array of integer values

Initialize array List

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

Add values to array List

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

Send the array list values to target activity

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

here you get values on targetActivty

Intent intent=getIntent();
ArrayList<String> test = intent.getStringArrayListExtra("test");
Share:
146,664
Kitinz
Author by

Kitinz

Updated on June 19, 2020

Comments

  • Kitinz
    Kitinz almost 4 years

    I have an array of integers in the activity A:

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

    And I want to send that variable to the activity B, so I create a new intent and use the putExtra method:

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

    In the activity B I get the info:

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

    But this is not really sending the array, I just get the value '0' on the arrayB. I've been looking for some examples but I didn't found anything so.

  • Kitinz
    Kitinz over 13 years
    Ouch! I was focused on the putExtra and getExtras syntax that i didnt realize the misstake was so obvious :D Thank you!
  • paladiya chirag
    paladiya chirag over 11 years
    i think you'll get to know after seeing this code that where u have done the mistake......:)
  • Adnan
    Adnan over 8 years
    @Kitinz +1 for to be very nice on community ... I liked that :)