如何在活动中为int数组创建,传递和添加值

时间:2016-05-07 05:22:54

标签: android arrays android-intent android-activity

我是编程新手,最近我遇到了活动中的问题。我无法将我的int数组传递给多个活动。

这是我的第一个活动:

 public void Start(View view) {
    Intent i = new Intent(this, Situation1.class);
    i.putExtra("arr", new int[]{0, 0, 0, 0, 0, 0});
    startActivity(i);
}

这是我的情况1:

 public void Serious(View view)
{
    Intent intent = new Intent(this, Situation2.class);
    Intent i = getIntent();
    int[] arr = getIntent().getIntArrayExtra("arr");
    arr[2]=arr[2]+1;
    arr[1]=arr[1]+1;
    startActivity(intent);
}

Situation2:

public void India(View view)
    {
    Intent intent = new Intent(this, Situation3.class);
    Intent i = getIntent();
    Bundle b = i.getExtras();
    int[] arr=i.getIntArrayExtra("arr");
    arr[0]=arr[0]+1;
    startActivity(intent);
}

谢谢你的帮助!

3 个答案:

答案 0 :(得分:1)

在Situation1和Serious函数中,你没有把你的数组放在你开始下一个活动的意图中。

public void Serious(View view)
{
Intent intent = new Intent(this, Situation2.class);
Intent i = getIntent();
int[] arr = getIntent().getIntArrayExtra("arr");
arr[2]=arr[2]+1;
arr[1]=arr[1]+1;
intent.putExtra("arr", arr);
startActivity(intent);
}

答案 1 :(得分:0)

你可以像这样使用整数的arraylist:

此代码发送整数值数组

初始化数组列表

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

了解更多信息:

http://stackoverflow.com/questions/3848148/sending-arrays-with-intent-putextra

答案 2 :(得分:0)

通过时:

Bundle b=new Bundle();
b.putIntArray("arr", new int[]{0, 0, 0, 0, 0, 0});
Intent i = new Intent(this, Situation1.class);
i.putExtras(b);
startActivity(i);

获取(很可能是oncreate Situation1次活动时):

Bundle b=this.getIntent().getExtras();
int[] array=b.getIntArray("arr");