2013-04-04 4 views
0

J'ai mis des bordures rouges à un editext dans certaines conditions (en utilisant la forme) et après je voulais revenir à l'edittext de style android par défaut.Monodroid: Modifier le style edittext (bordure en rouge) et après revenir au style par défaut

J'ai essayé comme ceci:

EditText lastName = FindViewById<EditText>(Resource.Id.lastName); 
lastName.SetBackgroundResource(Android.Resource.Drawable.EditBoxBackgroundNormal); 

Il affiche long bar blanc au lieu du style par défaut de edittext (fond noir et ligne grise comme ça: http://tiny.cc/ds20uw)

Quelqu'un sait comment je peux obtenir ce style par défaut d'edittext?

Répondre

0

Android utilise des attributs pour mapper le bon dessin au niveau de l'API, au thème de l'application, à la configuration de l'appareil, etc. Essayez la ligne de code suivante.

lastName.SetBackgroundResource(Android.Resource.Attribute.EditTextBackground); 
+0

J'ai essayé votre code mais il donne cette exception unhandle: 'Android.Content.Res.Resources + NotFoundException: Ressource ID # 0x1010352' – liotims

+0

ce n'est pas possible de sauvegarder l'ancien fond d'un edittext avec monodroid? (android-java: 'activity.findViewById (id) .getBackground();') – liotims

1

Comment définissez-vous que signe "erreur"? Au lieu d'enlever l'arrière-plan Drawable Je voudrais juste mettre avec:

myEditText.SetCompoundDrawablesWithIntrinsicBounds(0 , 0, Resource.Drawable.MyErrorIcon, 0); 

myEditText est une instance de EditText et Resource.Drawable.MyErrorIcon est un Drawable de l'icône que vous souhaitez afficher.

Vous pouvez le supprimer avec:

myEditText.SetCompoundDrawablesWithIntrinsicBounds(0 , 0, 0, 0); 

En réglant le CompoundDrawables vous aurez jamais besoin de toucher la ressource en arrière-plan de la EditText.

+0

Mhh oui cela pourrait être agréable. Ce que je voulais faire est de mettre la bordure de l'edittext en rouge quand la valeur n'est pas bonne et de revenir au style par défaut quand la valeur de edittext est correcte. Il y a une façon de faire cela ? – liotims

+0

S'il vous plaît modifier votre question pour refléter cela au lieu d'avoir cela dans les commentaires. – Cheesebaron

Questions connexes