如何在Xamarin android上将数据从Afragment传递给Bactivity?

时间:2016-04-28 01:47:09

标签: xamarin xamarin.android

Afragment.cs

var data=new Intent(this,typeof(Bactivity));
   	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 个答案:

答案 0 :(得分:1)

在片段中,您必须使用Activity而不是this var data=new Intent(this.Activity, typeof(Bactivity));

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

如果它是一个大物体,后者会更好,因为它更快。

使用serialize函数将对象转换为字符串,使用deserialize将其转换回对象。

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);