将int数组传递给另一个活动

时间:2015-12-03 02:39:07

标签: java android arrays

我在本网站发现了与我的相似的其他问题;我尝试了他们的sugestions但我一直得到NullPointExceptionError如下:

" java.lang.RuntimeException:无法启动活动ComponentInfo java.lang.NullPointerException:尝试调用虚方法' int [] android.os.Bundle.getIntArray(java.lang.String)'在null对象引用"

这是我到目前为止所做的:

原始数组的活动:

Bundle myBundle = new Bundle();
myBundle.putIntArray("PTArray", PTFindings);
Intent intent = this.getIntent();
intent.putExtra("PTArray", PTFindings);
startActivity(intent);

接收此数组的活动:

int[] PTData = getIntent().getIntArrayExtra("PTArray");
Bundle myBundle = getIntent().getExtras();
PTData = myBundle.getIntArray("PTArray"); 

***非常感谢任何帮助

3 个答案:

答案 0 :(得分:1)

试试这个原作:

Intent intent = new Intent(thisActivity.this, nextActivity.class);
intent.putExtra("PTArray", PTFindings);
startActivity(intent);

这是接收:

Bundle myBundle = getIntent().getExtras();
int[] PTData = myBundle.getIntArray("PTArray"); 

答案 1 :(得分:0)

您没有创建传递给新Activity的Intent。尝试更改

Intent intent = this.getIntent();

Intent intent = new Intent(this, ComponentInfo.class);

然后应该将Intent传递给接收类。

另一点是,在您的代码中,您没有将Bundle传递给Intent。因此getIntent().getExtras();实际上会在您的代码中返回null,因此myBundle.getIntArray会导致NPE。因此,当您想要在下一个活动中访问Bundle时,请不要忘记调用

intent.putExtra(myBundle);

答案 2 :(得分:0)

您没有将myBundle或目标活动传递给意图,请尝试使用此功能:

Bundle myBundle = new Bundle();
myBundle.putIntArray("PTArray", PTFindings);
Intent intent = new Intent(this, ComponentInfo.class);
intent.putExtra("PTArray", PTFindings);
intent.putExtra(myBundle);
startActivity(intent);