C# 2 c中SetOnClickListener的源代码#

C# 2 c中SetOnClickListener的源代码#,c#,android,xamarin,onclicklistener,C#,Android,Xamarin,Onclicklistener,如何确定IOnClickListener的单击是从哪个源触发的 我对SetOnClickListener进行了初始化 private void setUpListener() { changePassword.SetOnClickListener(this); forgotPassword.SetOnClickListener(this); } 我想发生的是 public void OnClick(View v) {

如何确定IOnClickListener的单击是从哪个源触发的

我对SetOnClickListener进行了初始化

    private void setUpListener()
    {
        changePassword.SetOnClickListener(this);
        forgotPassword.SetOnClickListener(this);
    }
我想发生的是

    public void OnClick(View v)
    {
        if(source == changePassword)
        {
            Intent intent = new Intent(this, typeof(ChangePassword));
            StartActivity(intent);
        }
        else if(source == forgotPassword)
        {
            Intent intent = new Intent(this, typeof(ForgotPassword));
            StartActivity(intent);
        }
    }

在OnClick方法中,将开关盒与视图v放在一起,并使用分配给所述视图的特定id指定开关盒。

在OnClick方法中,将开关盒与视图v放在一起,并使用分配给所述视图的特定id指定开关盒。

我得到了答案!:D感谢@Mike:)虽然有些评论在C#中并不存在(可能是android编码),但它还是有帮助的

让v.id发送的id进入视图非常好 然后使用Resource.ID.txtChangePassword将其与我的textView ID进行比较,使其运行

这是我的代码

    public void OnClick(View v)
    {
        int id = v.Id; //get id here
        if (id == Resource.Id.txtChangePassword) //comparison
        {
            Intent intent = new Intent(this, typeof(ChangePassword));
            intent.PutExtra(IntentExtras.activitySourceSerialized, JsonConvert.SerializeObject(Strings.loginActivity));
            StartActivity(intent);
        }
        else if(id == Resource.Id.txtForgotPassword) //comparison
        {
            Intent intent = new Intent(this, typeof(ForgotPassword));
            intent.PutExtra(IntentExtras.activitySourceSerialized, JsonConvert.SerializeObject(Strings.loginActivity));
            StartActivity(intent);
        }
    }

干杯我得到了答案!:D感谢@Mike:)虽然有些评论在C#中并不存在(可能是android编码),但它还是有帮助的

让v.id发送的id进入视图非常好 然后使用Resource.ID.txtChangePassword将其与我的textView ID进行比较,使其运行

这是我的代码

    public void OnClick(View v)
    {
        int id = v.Id; //get id here
        if (id == Resource.Id.txtChangePassword) //comparison
        {
            Intent intent = new Intent(this, typeof(ChangePassword));
            intent.PutExtra(IntentExtras.activitySourceSerialized, JsonConvert.SerializeObject(Strings.loginActivity));
            StartActivity(intent);
        }
        else if(id == Resource.Id.txtForgotPassword) //comparison
        {
            Intent intent = new Intent(this, typeof(ForgotPassword));
            intent.PutExtra(IntentExtras.activitySourceSerialized, JsonConvert.SerializeObject(Strings.loginActivity));
            StartActivity(intent);
        }
    }

干杯

让我试试看哦,还有一件事,请确保在交换机中使用v.GetId(没有GetId:)但是,谢谢:)我现在正在尝试您的第一个答案。v、 Id是存在的虽然是的v.Id然后在你的情况下使用R.Id.change\u密码让我试试哦还有一件事确保在开关中使用v.GetId没有GetId:)但是谢谢:)我现在尝试你的第一个答案。v、 Id是现有的,尽管是v.Id,但在您的情况下,请使用R.Id.change\u密码