2017-08-21 4 views
0

を置きます私のフラグメントの、バンドルにSimpleSelectorItemの配列を設定しようとしている:は、ここで私がやったことで、私は、バンドル内のオブジェクトの配列を保存する必要がparcelable配列

 var items = _viewModel.GetEmployees().Select(l => new SimpleSelectorItem(l.Id, l.LegalName)).ToArray(); 
     .... 
    args.PutParcelableArray(ITEMS, items); 

しかし、私はこの配列を取り戻すんだ、それがヌルの配列です。..

var items = Arguments.GetParcelableArray(ITEMS); 

ここで私はアイテムをキャストしようとしていながら、それが例外をスローし、デモアプリケーションです: https://github.com/Nininea/XamarinAndroidPutParcelableArray

+0

私は、バンドルデータと活動間をジャンプして、基本的なデモを作ったが、あなたを再現していませんでした問題を再現できる基本的なデモを提供してください。 –

+0

質問が更新されました。デモアプリケーションリンク – Nininea

答えて

1

しかし、私は戻って、この配列を取得していたときに、それがヌルの配列..です

私はプロジェクトをテストしました。データは正しく渡されましたが、キャストは失敗しました。

問題を解決するために、あなたは異なった配列をキャストする必要があります。

SetData方法で:

private void SetData(View rootView) 
    { 
     ... 
     //use the following line to retrieve and cast the items to SimpleSelectorItem[] 
     var items = Arguments.GetParcelableArray(ITEMS).Cast<SimpleSelectorItem>().ToList(); 

     _lvSelector = (ListView)rootView.FindViewById(Resource.Id.lvSelector); 
     //pass the items to your adapter. 
     SimpleSelectorListAdapter adapter = new SimpleSelectorListAdapter(Activity, items); 
     _lvSelector.Adapter = adapter; 
    } 
+0

が正常に動作しました。ありがとうございました。 – Nininea

関連する問題