2016-03-23 9 views
0

アクティビティ間でArrayList<float[]>を送信する最も簡単な方法は何ですか?ArrayListの送信<float[]>アクティビティ(アンドロイド)

SharedPreferencesまたはputExtraを使用して送信することはできますか?

私は、ArrayList<String>またはArrayList<Int>の送信の例しか見ていません。これらのオプションは、〜によって構築されています。 putStringArrayListなど

答えて

2

インテントのバンドルに余分に追加するのが最善の方法です。これは、インテントエクストラがアクティビティ間で引数を渡すように特別に作成されたためです。

入れエクストラ

ArrayList<float[]> list = new ArrayList<>(); 
Intent i = new Intent(FirstActivity.this, SecondActivity.class); 
i.putExtra("arg_key", list); 

はエキストラ

ArrayList<float[]> list = (ArrayList<float[]>) getIntent().getSerializableExtra("arg_key"); 

を取得したデータは、とにかくデータベースに永続化される場合、あなたは、単にデータベースから取得だろう、と述べたこと。それはフラグ等、トークン、アプリの設定を格納するためのものであるように私はこのためにSharedPreferencesを使用することはありません

UPDATEあなたはテントのエクストラによってサポートされているされていない引数を渡したい場合は

ネイティブではないSerializableParcelableを見てください。任意のPOJOにParcelableを実装してBundleに追加できるようにすることができます。 ParcelableはSerializableより高速です。

+0

ありがとうございます。しかし、これはfloat配列を送信する方法を説明しますが、float配列のArrayListを送信する方法については説明していませんか? – sonnert

+0

私はすでに自分の答えを更新しました。 serializableは 'ArrayList'と' float [] 'が両方とも' Serializable'であるため動作します。 – Kevin

+0

ありがとうございました!それは魅力のように働く。 – sonnert

関連する問題