Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Facebook后的用户名传递给另一个活动-Xamarin_C#_Android - Fatal编程技术网

C# 将Facebook后的用户名传递给另一个活动-Xamarin

C# 将Facebook后的用户名传递给另一个活动-Xamarin,c#,android,C#,Android,我使用intent将我的数据从一个活动(身份验证页)传递到另一个活动,以访问Facebook loggedIn用户。我在代码中没有看到任何错误,但是显示用户名的文本返回空(空白)。 这里少了什么?为了实现这一点,我遵循了S.O的样本问题的答案 auth.cs mProfileTracker = new MyProfileTracker(); mProfileTracker.mOnProfileChanged += FindFaceBookUserProfile;

我使用intent将我的数据从一个活动(身份验证页)传递到另一个活动,以访问Facebook loggedIn用户。我在代码中没有看到任何错误,但是显示用户名的文本返回空(空白)。 这里少了什么?为了实现这一点,我遵循了S.O的样本问题的答案

auth.cs

mProfileTracker = new MyProfileTracker();
            mProfileTracker.mOnProfileChanged +=  FindFaceBookUserProfile;
            mProfileTracker.StartTracking();

    private void FindFaceBookUserProfile(object sender, OnProfileChangeEventArgs e)
            {
                        LoggedInUserName.Text = position.FindProfile.Name;
                        LoggedInUserLastName.Text = position.FindProfile.Name;
        MajorActivity));
                        intent.PutExtra(MajorActivity.EXTRA_NAME, LoggedInUserName.Text);
                        this.StartActivity(intent);

                    }

public void OnSuccess(Java.Lang.Object result)
        {
            LoginResult loginResult = result as LoginResult;
            Console.WriteLine(loginResult.AccessToken.UserId);
             GetId= loginResult.AccessToken.UserId;
        }
 protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)

        {
            base.OnActivityResult(requestCode, resultCode, data);
            mCallbackManager.OnActivityResult(requestCode, (int)resultCode, data );
        }
主要活动

        public const string EXTRA_NAME = "UserName";
        protected override void OnCreate(Bundle savedInstanceState)
        {

            base.OnCreate(savedInstanceState);

            string UserName = Intent.GetStringExtra(EXTRA_NAME);
}

var headerView = navigationView.GetHeaderView(0);
GetUserName= headerView.FindViewById<TextView>(Resource.Id.loginUser);
GetUserName.Text = UserName;
public const string EXTRA_NAME=“UserName”;
创建时受保护的覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
字符串用户名=Intent.GetStringExtra(额外名称);
}
var headerView=navigationView.GetHeaderView(0);
GetUserName=headerView.findviewbyd(Resource.Id.logiuser);
GetUserName.Text=用户名;

您正试图提取意图中的字符串。我相信你也需要放一根绳子。试一试

intent.PutExtra(MajorActivity.EXTRA_NAME, LoggedInUserName.toString());

参考您的auth.cs中的

,我看不到您为您的意图分配了新内存,请尝试以下操作:

Intent i = new Intent(this, MajorActivity.class);
i.putExtra(MajorActivity.EXTRA_NAME, LoggedInUserName.Text);
startActivity(intent);
然后,在MajorActivity.class中,执行以下操作:

Bundle extras = getIntent().getExtras();
if(extras !=null) {
    String value = extras.getString(MajorActivity.EXTRA_NAME);
}

请将您的LoggedInUserName代码发布为well@RedM,我可以验证我的用户。当我在auth.cs中输出LoggedInUserName时,我能够看到名称。但我正试图将数据传递给MajorActivity的导航视图。问题似乎来自意图部分。。我确信:)代码更新了intent.puttera(MajorActivity.EXTRA_NAME,LoggedInUserName.Text.toString());这就是我现在拥有的。。它还是空白的。我在运行应用程序时没有遇到错误。应用程序工作正常,但文本为空。请注意,我对上面的代码做了一些小修改。这就是LoggedInUserName.text这部分应该在onCreate方法中。因为您的用户名字符串是该方法的本地字符串。var headerView=navigationView.GetHeaderView(0);GetUserName=headerView.findviewbyd(Resource.Id.logiuser);GetUserName.Text=用户名;它已经在我的onCreate方法中了:),但是当我设置GetUserName.Text=“Hello”时,它就可以工作了。可能是用户名没有到达或什么的吗?好的,这样做。将字符串USername设置为全局变量,然后重试。如果这不起作用,请在那里放置一个断点,并在调试模式下运行它,并检查在该行计算该表达式时字符串UserName=Intent.GetStringExtra(EXTRA_NAME)得到的值;我现在使用了一个全局变量作为用户名。它不工作,我只是安慰用户名。查看我的日志猫,没有从auth.cs推送任何内容。这就是为什么它是空白的。baseActivity在身份验证之前运行,我很确定。请注意:MajorActivity是一个基类,auth.cs被映射为MajorActivity,就像(auth:MajorActivity)我实际使用的是Xamarin.Droid一样。(C)。看起来你更喜欢Java是的,我更喜欢Java。你能把这个逻辑翻译成你的代码吗?我本想看看Xamarin论坛,但我得到了逻辑看看Xamarin,这就是我的方法。我在我的一项活动中使用过这个,效果很好。我真的不知道为什么我的代码不能工作