2016-04-28 42 views
1

Afragment.cs如何將數據從Afragment傳遞給xamarin android上的Bactivity?

var data=new Intent(this,typeof(Bactivity)); 
 
    \t data.PutStringArrayListExtra("ByGenres",TrackModel.Track); 
 
     data.PutExtra("position",e.Position); 
 
     StartActivity(data);

  • 錯誤CS0119:表達式表示type', where a變量 'value' or方法組' 預計
  • 錯誤CS1502:爲了獲得最佳重載方法匹配`Android.Content.Intent.Intent(Android.Content.Context,System.Type)' 有一些無效參數(CS1502 )

無法將數據傳遞給Bacitivity。

回答

1

在片段,你必須使用Activity代替thisvar data=new Intent(this.Activity, typeof(Bactivity));

var str = Newtonsoft.Json.JsonConvert.SerializeObject(obj); 
... 
T obj = Newtonsoft.Json.JsonConvert.DeserializeObject<T>(str); 

如果它是一個大的對象,後者是更好,因爲它的速度要快得多。

使用serialize函數將對象轉換爲字符串,並使用反序列化將對象轉換回對象。

var track=Newtonsoft.Json.JsonConvert.SerializeObject(items.tracks); 
var data=new Intent(this.Activity,typeof(AudioPlayer)); 
data.PutExtra("listdata",track); 
data.PutExtra("position",e.Position); 
StartActivity(data); 
+0

sr。我在PutStringArrayListExtra遇到問題。 –

+0

更新您的代碼 –

+0

編號無法將'System.Collections.Generic.List '表達式轉換爲類型'System.Collections.Generic.IList '(CS1503) –