我是编程新手,最近我遇到了活动中的问题。我无法将我的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);
}
谢谢你的帮助!
答案 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");