重置EditText BackgroundColor为默认值
本文关键字:默认值 BackgroundColor EditText 重置 | 更新日期: 2023-09-27 17:52:46
我有一个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中,或者根本不存在。
必须将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);
}
};
}
你可以在设置它之前获得颜色,以便在稍后的时间设置它,
var buttonBackground = RegEmail.Background;
Color backgroundColor;
if(buttonBackground is ColorDrawable)
{
backgroundColor = (buttonBackground as ColorDrawable).Color;
//You now have a background color.
}
if(backgroundColor != null)
RegEmail.SetBackgroundColor(backgroundColor);