0

私は最も単純なオブジェクトを持っており、そのために parcelable を使用しています。しかし、このオブジェクトはより複雑で、多次元配列を持ち、パーセル可能なメソッドの書き方が本当にわかりません:

public class PointSystem 
{
    private int point;
    private boolean [] vec1;
    private HashSet <Integer> hs1;
    private int [][]    vecMap;
}

コードが読みやすくなるように、同じ型の他のインスタンス変数とメソッドを削除しました。シリアライズ可能で試しましたが、配列 [][] に取得したシリアライズ可能を他のインテントからキャストする方法がわかりません。

このオブジェクトをパーセル化するにはどうすればよいですか? または、このオブジェクトを別の意図に渡す他の方法はありますか?

4

1 に答える 1

1
  1. まず、取得したシリアライズ可能オブジェクトを array[][] にキャストしようとしていると言いますが、このオブジェクトのすべてのメンバーを個別のエクストラとして渡そうとしているのですか? PointSystem オブジェクト全体をシリアライズして、エクストラとして渡しませんか。次に、受信しようとすると、次のようになります。

    PointSystem p = (PointSystem) getIntent().getSerializableExtra("Extra_Name");
    int[][] vecMap = p.vecMap;
    
  2. Parcelable の使用の良い例は、この回答内にあります。

于 2013-06-09T19:02:09.810 に答える