c# - 将自定义对象传递给 Xamarin Android 中的下一个 Activity

标签 c# android android-activity xamarin

我有一些自定义对象,例如 RootObjectForm,我想将它们传递给下一个 Activity 。

这是一个RootObject的例子:

public class RootObject
{
    public Form Form { get; set; }
}

但是我怎样才能将 RootObject 传递给带有 Intent 的下一个 Activity 并在下一个 Activity 中获取它?在 Form 中,再次有多个属性与 Lists 和东西,我需要在我的下一个 Activity 中访问一些属性。我的 Intent 是这样称呼的:

saveButton.Click += delegate {
    if(ValidateScreen()){
        SaveData();
        Intent intent = new Intent(this, typeof(MainActivity));
        Bundle b = new Bundle();
        b.PutSerializable("RootObject", RootObject);
        StartActivity(intent);
    }
};

最佳答案

我知道这是一个老问题,但我认为我的回答可能会对某些人有所帮助。 我所做的是使用 JSON.Net 包,您可以使用 Nuget 管理器安装它。通过使用 JSON,您可以在第一个 Activity 中序列化您的对象,然后在第二个 Activity 中反序列化。 我是这样做的:

Activity 1

using Newtonsoft.Json;
...
void mBtnSignIn_Click(object sender,EventArgs e)
{
      User user = new User();
      user.Name = "John";
      user.Password = "password";

      Intent intent = new Intent(this,typeof(Activity2));
      intent.PutExtra("User",JsonConvert.SerializeObject(user));
      this.StartActivity(intent);
      this.Finish();

}

Activity 2

using Newtonsoft.Json;
...
private User user;
protected override void OnCreate(Bundle savedInstanceState)
{
      base.OnCreate(savedInstanceState);

      SetContentView(Resource.Layout.Activity2);
      user = JsonConvert.DeserializeObject<User>(Intent.GetStringExtra("User"));
}

希望这会对某人有所帮助。

关于c# - 将自定义对象传递给 Xamarin Android 中的下一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23489159/

相关文章:

c# - 为椭圆添加属性以获取鼠标事件 C#

android - 在 Activity 和 ListActivity 中共享相同的代码

c# - 从 C# 在 Oracle 数据库中输入日期参数​​的正确格式是什么

android - 使用addrow for MatrixCursor,如何添加不同的对象类型?

android - 添加 Android WiFi 连接结果为 -1

android - FloatingActionButton 子菜单

android - 当父 Activity 作为参数传递给非 Activity 类中的 Intent 时, onActivityResult 不会被 finish() 调用

android-activity - 无决策节点的 UML Activity 图决策

c# - 如何将已发布的 Visual C# 解决方案连接到不同的数据库

c# - 起点和终点内的条件过滤