我有一些自定义对象,例如 RootObject
和 Form
,我想将它们传递给下一个 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/