使用android-intent传递数组

时间:2014-11-30 15:45:19

标签: android arrays android-intent achartengine

我正在使用achartengine库,我想通过意图传递一个图形点数组,这样当我点击一个按钮时,它会打开一个包含主要活动数据的图形。目前,我在活动A中使用名为x的硬编码数组,并尝试将其传递给活动B.

活动A:

public void lineGraphHandler (View view) {
    LineGraph line = new LineGraph();
    Intent lineIntent = line.getIntent(this);
    lineIntent.putExtra("points", x);
    startActivity(lineIntent);
}

活动B:

public class LineGraph{

int[] x = getIntent(null).getIntArrayExtra("points");

public Intent getIntent(Context context) {
    //int[] x = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // x values!

    int[] y =  { 30, 34, 45, 57, 77, 89, 100, 111 ,123 ,145 }; // y values!

但是我得到运行时空指针错误,logcat说:

"Caused by Java.lang.reflect.Method.InvocationTargetException"

1 个答案:

答案 0 :(得分:0)

你应该使用:

A类:

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

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

B级:

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