将EditText BackgroundColor重置为默认值

时间:2016-06-28 08:47:17

标签: c# xamarin xamarin.android

我有EditText然后:

private void RegEmail_TextChanged(object sender, Android.Text.TextChangedEventArgs e)
{
    var orginalDrawable = RegEmail.Background;
    if (RegEmail.Text.Contains("@") && (RegEmail.Text.Contains(".")))
    {
        RegEmailB = true;

        RegEmail.SetBackgroundColor(Color.Green);

    }
    else
    {
        RegEmailB = false;

        RegEmail.SetBackgroundColor(Color.Red);

    }
}           

我基本上需要将其设置回默认状态..但我发现的大部分内容都是在java中或不存在。

2 个答案:

答案 0 :(得分:1)

您必须将EditText的原始状态保存在TextChanged之外。这是一个完整的完整解决方案。

private EditText RegEmail;
private Drawable _orginalDrawable;

protected override void OnCreate(Bundle savedInstanceState)
{
    base.OnCreate(savedInstanceState);
    SetContentView(Resource.Layout.Main);

    RegEmail = FindViewById<EditText>(Resource.Id.myEdt);
    _orginalDrawable = RegEmail.Background;
    RegEmail.TextChanged += (sender, e) =>
    {
        if (RegEmail.Text.Contains("@") && (RegEmail.Text.Contains(".")))
        {
            RegEmail.Background = _orginalDrawable;
        }
        else
        {
            RegEmail.SetBackgroundColor(Color.Red);
        }
    };
}

答案 1 :(得分:0)

您可以在设置之前获取颜色,以便稍后将其设置回来,

Flow