使用Intent.putExtra发送数组


69

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

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

我想将该变量发送到活动B,所以我创建了一个新的Intent并使用putExtra方法:

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

在活动BI中获取信息:

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

但这不是真正发送数组,我只是在arrayB上获得了值“ 0”。我一直在寻找一些例子,但没有发现任何事。


2
我需要的答案是你的问题。这是如何使用.getExtras()我需要的。
MikeyE

Answers:


88

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

您的代码应为:

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

5
哎哟! 我专注于putExtra和getExtras语法,我没有意识到错误很明显:D谢谢!
Kitinz 2010年

@Kitinz +1表示对社区非常友善...我喜欢:)
Adnan

10

此代码发送整数值数组

初始化数组列表

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);

在这里,您可以获得有关targetActivty的值

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

-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
我想您会在看到此代码后知道您在哪里犯了错误……:)
paladiya chirag 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.