在两个活动之间传递值矩阵

时间:2012-04-21 07:31:32

标签: android android-intent

我无法在两个活动之间传递整数矩阵。这是代码:

  • 活动A:

    intent.putExtra("matrix_", (Serializable)matrix);

  • 活动B:

    Bundle extras = getIntent().getExtras();
    matrix =  (int[][]) extras.getSerializable("matrix_");
    

2 个答案:

答案 0 :(得分:7)

有一种通过意图传递矩阵的简单方法。

活动A:

float[] values = new float[9];
matrix.getValues(values);
intent.putExtra("matrix_values", values);

活动B:

float[] values = getIntent().getFloatArrayExtra("matrix_values");
Matrix matrix = new Matrix();
matrix.setValues(values);

答案 1 :(得分:0)

在创建意图对象时,可以使用以下两种方法在两个活动之间传递对象。

putParceble

putSerializable

您可以使用ParcelableSerializable来实现此类工作。

然后,您可以跨活动传递自定义类。我发现这非常有用。

以下是我正在使用的一小段代码

Matrix matrix  = new Matrix ();
Intent i = new Intent();

Bundle b = new Bundle();
b.putParcelable("CUSTOM_LISTING", matrix  );
i.putExtras(b);
i.setClass(this, NextActivity.class);
startActivity(i);

在新开始的活动代码中会是这样的......

Bundle b = this.getIntent().getExtras();
if(b!=null)
    mCurrentListing = b.getParcelable("CUSTOM_LISTING");

**用链接编辑::: **

LINK1由示例代码

组成

LINK2

LINK3