When transferring data between activities, it may be necessary to pass complex data structures such as arrays. This article explores how to effectively send an array of integers from one activity (A) to another (B) using Intent.putExtra().
Problem:
In activity A, an array of integers is initialized and intended to be sent to activity B. However, upon receiving the data in activity B, only the value '0' is retrieved instead of the expected array values.
Solution:
The issue lies in the data type mismatch when setting and retrieving the extra. In the provided code:
When sending the data, the putExtra() method is used with an array argument:
i.putExtra("numbers", array);
When receiving the data, the getExtras() method attempts to retrieve the data as a single integer:
int arrayB = extras.getInt("numbers");
The correct approach is to receive the data as an array by using the getIntArray() method instead:
int[] arrayB = extras.getIntArray("numbers");
By using getIntArray(), the received data can be successfully stored in an integer array.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3