c#

时间:2017-02-02 03:35:09

标签: c# android xamarin onclicklistener

如何确定触发IOnClickListener的onClick来源?

我有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);
        }
    }

2 个答案:

答案 0 :(得分:1)

在OnClick方法中,使用View v放置一个switch case,并指定具有分配给所述视图的特定id的个案。

答案 1 :(得分:1)

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

获取由v.Id在View中发送的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);
        }
    }

<强> CHEERS !!!