繁体   English   中英

在 Xamarin 中的活动之间传递数据

[英]Passing data between activities in Xamarin

我无法将 MainActivity 中的数据共享到 Welcome 活动,即使我遵循了此页面的说明: https : //developer.xamarin.com/recipes/android/fundamentals/activity/pass_data_between_activity/

主活动(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";

我得到空值,不知道为什么。 有什么建议或建议吗?

您必须在单击按钮时获取文本,否则它将没有值(因为创建 UI 时,EditText 将为空,因此当时为空值)所以

string name = null;
button.Click += delegate { 
        name = myName.Text;
        var welcome = new Intent(this, typeof(Welcome));
        welcome.PutExtra("name", name);
        StartActivity(welcome);
    };

如果您要去子视图,如果您想返回结果,请使用 StartActivityForResult。 您可以在 ActivityResult 中获取返回对象:

protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)

所以这是在活动之间传递数据和返回数据的好方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM