使用 Intent.putExtra 发送数组

我在活动A中有一个整数数组:

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

我想将该变量发送到活动 B,因此我创建了一个新的意图并使用 putExtra 方法:

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

在活动B中,我得到的信息:

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

但这并不是真正发送数组,我只是在数组B上得到值“0”。我一直在寻找一些例子,但我没有找到任何东西。


答案 1

您正在使用数组设置额外的内容。然后,您正在尝试获取单个 int。

您的代码应该是:

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

答案 2

此代码发送整数值数组

初始化数组列表

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

向数组列表添加值

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

将数组列表值发送到目标活动

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

在这里,您可以获得目标操作的值

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

推荐