2012-04-21 10 views
1

2つのアクティビティ間で整数の行列を渡すことはできません。ここでのコードは次のとおりです。2つのアクティビティ間で値の行列を渡す

  • 活動A:

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

  • アクティビティB:私はあなたの助けを期待

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

。 ありがとうございました

答えて

0

インテントオブジェクトを作成するときは、2つのアクティビティ間でオブジェクトを渡す2つの方法を利用できます。あなたがこれを行うことができますどのような

putParceble

putSerializable

、あなたのクラスはParcelableSerializableのいずれかを実装しています。

次に、カスタムクラスをアクティビティ間で渡すことができます。私はこれが非常に有用であることを発見しました。ここで

はLINKSで編集し、私はこのようなものになります
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

+0

私はまだプログラミングと初心者だから、私はあなたのアドバイスを使用する方法を理解することはできません謝罪します。私のアプリケーションは、最初のアクティビティで、入力として2つの行列をとり、乗算を実行します。 2番目のアクティビティでは、最初のアクティビティからの乗算の結果が表示され、それを表示します – bisemanu

+0

リンクで編集しました –

+0

Matrixのようなものは分解できません。ウィリアムの答えは私のために働いた –

5

意思を通じて行列を渡すための簡単な方法があります。

活動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

これは正しい答えです!採用する必要があります!!!! –

関連する問題