在android中使用bundle传递数组

时间:2011-03-14 13:55:42

标签: android arrays bundle

我需要将一个String / integer值数组从一个Activity传递给另一个Activity。我如何实现这一目标?

5 个答案:

答案 0 :(得分:28)

在活动A:

String[] abc;

Bundle bundle =new Bundle();
bundle.putStringArray("some string",abc);

在活动B中,您希望将代码设为:

String abcd[]=bundle.getStringArray("some string");
在这两种情况下,“某些字符串”应该相同。

答案 1 :(得分:4)

在发件人方面,代码应为:

String[] myStrings=new String[2];
myStrings[0]="MONDAY";
myStrings[1]="TUESDAY";
Intent intent = new Intent(v.getContext(), Animation_program.class);
Bundle bundle = new Bundle();
intent.putExtra("strings", myStrings);
intent.putExtras(bundle);               
startActivity(intent);

在接收方,代码应为:

Intent i = getIntent();
Bundle extras=i.getExtras();

if(extras != null)  //this line is necessary for getting any value
{
    String[] fajr_Values = i.getStringArrayExtra("strings");
    Toast.makeText(this, "value="+fajr_Values[0]+""+fajr_Values[1], Toast.LENGTH_SHORT).show();
}

答案 2 :(得分:2)

我从未使用过捆绑包传递数组,如果可以完成,我不知道我的头脑,但你当然可以传递一个ArrayList(或任何Serializable / Parcelable)。请参阅此问题以获得更完整的答案:

Passing data of a non-primitive type between activities in android

答案 3 :(得分:1)

请参阅此pass arraylist from one activity to other可能会对您有所帮助

答案 4 :(得分:-2)

传递字符串和整数值的代码::

在你的第一个活动中::

Intent intent = new Intent(California.this,details.class);
Bundle bundle = new Bundle();
bundle.putString("Keyname1", StringValue);
bundle.putInt("Keyname2", IntegerValue);
intent.putExtras(bundle);
startActivity(intent);

在第二项活动中:

Bundle b=this.getIntent().getExtras();
String s=b.getString("Keyname1");
int i=b.getInt("Keyname2");