(Android)通过intent传递多维数组

时间:2013-05-17 11:30:25

标签: java android android-intent multidimensional-array bundle

我想将多维数组传递给活动

多维数组:

double[][][] speed  = new double[][][]
{
    {
        { 15, 10 },
        { 16, 12 }
    },
    {
        { 14, 50 },
        { 18, 51 }
    }
};

Bundle mBundle = new Bundle();
mBundle.putSerializable("speed", speed);

Intent myIntent = new Intent(getActivity(), LineChart.class);
myIntent.putExtra("speed", mBundle);
startActivity(myIntent);

要在另一个类(线图类)中接收它,我使用:

private double[][][] _speed;

@Override
protected void onCreate(Bundle savedInstanceState)  {
    super.onCreate(savedInstanceState);

    // Get ALL the data!!!
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        this._speed = extras.getSerializable("speed");
    }

    setContentView(showLineChart());
}

我收到以下错误:

Type mismatch: cannot convert from Serializable to double[][][]

有人可以解释一下如何做到这一点吗?

2 个答案:

答案 0 :(得分:2)

假设你的AActivity和BActivity

在AActivity中,声明变量和以下方法:

private static double[][][] doubleVar;  
public static boolean[][][] getDoubleVar()
{
 return doubleVar;
}

现在在AActivity中将值赋值给doubleVar。

现在从BActivity,您可以像这样访问doubleVar:AActivity.getDoubleVar()

答案 1 :(得分:0)

您必须将其投放到double[][][]

@Override
protected void onCreate(Bundle savedInstanceState)  {
    super.onCreate(savedInstanceState);

    // Get ALL the data!!!
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        this._speed = (double[][][]) extras.getSerializable("speed");
    }

    setContentView(showLineChart());
}