2016-03-31 6 views
-2

カスタムArrayListを操作してアクティビティ間で移動しようとすると問題が発生します。まず、私は最初のアクティビティでカスタムArrayListを宣言しました。インテントによるカスタムArrayListの送信

private ArrayList<String[]> dataArray = new ArrayList<String[]>(); 

ここで、ArrayListの各要素はString要素の配列です。

次に、私は)putExtra(との意図にそれを置く:

Intent int1 = new Intent(this, ManualModeActivity.class); 
int1.putExtra(EXTRA_MESSAGE, dataArray); 

その後、私は私の第二の活動でのArrayListを回復しようとすると、私はArrayList<String>についてのみgetStringArrayListExtra()メソッドがあることを見つけます要素のため、ArrayList<String[]>では機能しません。私はこれについて調査してきました。私が見つけたのは、ParcelableまたはSerializeインターフェイスを実装するカスタムオブジェクトの例です。 String []のような "default"オブジェクトでこれをどうすればできますか? (あるいは、私はまだJavaの初心者だからインターフェイスの仕組みについて何か不足しているのでしょうか?)

+1

'カスタムのArrayList –

+0

使用するSerialize'インタフェース 'getSerializableExtra(EXTRA_MESSAGE) 'データを取得する。 –

答えて

0

最初の活動からのデータを送信するためのコードが正しいです。 intentgetSerializableExtra()方法、何かのような第2の活性使用中のデータを受信するための

:はい、それはあなたが `Parcelable`または使用の権利は

ArrayList<String[]> data = (ArrayList<String[]>) getIntent().getSerializableExtra(EXTRA_MESSAGE); 
0

EタイプがSerializableなら、同じ方法でArrayList<E>を渡すことができます。

インテントの格納先はputExtra (String name, Serializable value)、呼び出し先はgetSerializableExtra (String name)となります。

例:

ArrayList<String> myList = new ArrayList<String>(); 
intent.putExtra("mylist", myList); 
In the other Activity: 

ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("mylist"); 
関連する問題