C# Null GetStringExtra(Intent)-Xamarin.Droid

C# Null GetStringExtra(Intent)-Xamarin.Droid,c#,android,xamarin,C#,Android,Xamarin,我正在使用intents将数据从一个activity1传递到activity2。我在activity1中安慰了我的数据,并且我能够看到我发送给activity2的数据。但当我在activity2中控制台接收到的数据时,我没有接收到任何数据。我在使用意图时基本上遵循了正确的程序,但是这个技巧不起作用 问题:异步过程是否会影响意图的使用? 活动1 private async Task GetData() { var firebase = new FirebaseClient(Firebase

我正在使用intents将数据从一个activity1传递到activity2。我在activity1中安慰了我的数据,并且我能够看到我发送给activity2的数据。但当我在activity2中控制台接收到的数据时,我没有接收到任何数据。我在使用意图时基本上遵循了正确的程序,但是这个技巧不起作用

问题:异步过程是否会影响意图的使用?

活动1

private async Task GetData()
{
    var firebase = new FirebaseClient(FirebaseUrl);
    var items = await firebase.Child("TableName").OnceAsync<Person>();

    foreach (var item in items)
    {
        Person details = new Person();
        details.Name = item.Object.Name;
        person.Add(details);
    }

    void OnItemClick(object sender, int position)
    {
        Intent peaceHeroDetail = new Intent(this, typeof(PersonDetailActivity));
        Intent.PutExtra(PersonDetailActivity.EXTRA_NAME, person[position].Name.ToString());
        // the value of what is being sent is seen
        Console.WriteLine("This is selected person " +person[position].Name);
    }
}

由于你的评论显示这是一个错误,我删除了旧的答案,并给你这个更新

更新

检查以下文章:

在第一个活动中,您应该更改以下内容:

Intent peaceHeroDetail = new Intent(this, typeof(PersonDetailActivity));
Intent.PutExtra(PersonDetailActivity.EXTRA_NAME, person[position].Name.ToString());
为此:

Intent peaceHeroDetail = new Intent(this, typeof(PersonDetailActivity));
peaceHeroDetail.PutExtra(PersonDetailActivity.EXTRA_NAME, person[position].Name.ToString());

然后使用:
StartActivity(细节)

您能清理一下您的代码样本吗?这在我的字典里几乎看不懂opinion@yanyankelevich,希望现在好多了。是的,毫无疑问,好多了。你为什么要启动
peacherodeil
作为一个新的意图,但不使用它?另外,你能展示一下你是如何从第一个活动开始第二个活动的吗?@PaulKaram。我正在使用它<代码>起始触觉(细节)。我只是把它漏掉了,这样我的代码就不会那么长了。如果你看我的活动2,这就是我从第一个活动开始的第二个活动的基本运作方式。我是用onCreate方法做的,很抱歉这个错误。这实际上是一个示例代码,在我的代码中,我的代码与您的答案完全相同,但它不起作用。我只是再次尝试取出
ToString()
,我仍然得到空数据
ToString()
仅在
字符串
对象中引用自身,这不是问题。检查我对你的问题的最后评论,请分享你是如何开始第二个活动的。哦,我的糟糕..非常感谢保罗
Intent peaceHeroDetail = new Intent(this, typeof(PersonDetailActivity));
peaceHeroDetail.PutExtra(PersonDetailActivity.EXTRA_NAME, person[position].Name.ToString());