即使我按照此页面的说明操作,我也无法将MainActivity中的数据共享给Welcome活动:https://developer.xamarin.com/recipes/android/fundamentals/activity/pass_data_between_activity/
MainActivity(Activity1)
Button button = FindViewById<Button>(Resource.Id.send);
EditText myName = FindViewById<EditText>(Resource.Id.name);
string name = myName.Text;
button.Click += delegate {
var welcome = new Intent(this, typeof(Welcome));
welcome.PutExtra("name", name);
StartActivity(welcome);
};
欢迎(活动2)
string name = Intent.GetStringExtra("name") ?? "Data not available";
我无效,不知道为什么。有什么建议或建议吗?
答案 0 :(得分:3)
单击按钮时必须获取文本,否则它将没有值(因为创建UI时,EditText将为空,因此当时为空值)所以
string name = null;
button.Click += delegate {
name = myName.Text;
var welcome = new Intent(this, typeof(Welcome));
welcome.PutExtra("name", name);
StartActivity(welcome);
};
答案 1 :(得分:0)
如果要转到子视图,如果要返回结果,请使用StartActivityForResult。您可以在ActivityResult中获取返回对象:
受保护的重写void OnActivityResult(int requestCode, [GeneratedEnum]结果resultCode,意图数据)
因此,这是在活动之间传递数据和返回数据的好方法。