2016-06-28 9 views
1

У меня есть EditText, а затем:Сброс EditText BackgroundColor по умолчанию

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 или нет.

+0

Я обновил его, потому что хотел показать вам, что он не работает. –

+0

Я не могу вставить весь этот код в комментарий –

+0

Имеет хорошую практику stackoverflow, вы не должны редактировать свой вопрос с правильным ответом. Пожалуйста, верните его в исходный ответ. – jzeferino

ответ

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); 
     } 
    }; 
} 
+0

спасибо за помощь :) :) У кого-нибудь, кто искал свой код и его работу в моем вопросе. –

0

Вы можете получить цвет, прежде чем установить его, чтобы установить его на более позднее время попробовать,

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); 
+0

Color.Empty; не существует –

+0

, вы можете установить его на любой цвет :), которого вы не ожидаете, например colour.white –

+0

Мне нужно, чтобы цвет был установлен до того, как будет установлен красный цвет. –

Смежные вопросы