2013-04-04 43 views
0

我在某些条件下(使用形状)将红色边框放入editext中,之后我想回到默认的Android样式edittext。Monodroid:更改edittext样式(边框为红色),并返回默认样式

我想是这样的:

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

它显示白色的长条,而不是EditText上的默认样式(黑色背景和灰线这样的​​:http://tiny.cc/ds20uw

有人知道我能得到这个edittext的默认样式?

回答

0

Android使用属性将正确的drawable映射到api级别,应用程序主题,设备配置等。尝试下面的代码行。

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

我试过你的代码,但它给这个unhandle异常:'Android.Content.Res.Resources + NotFoundException:资源ID#0x1010352' – liotims 2013-04-05 09:03:45

+0

这是不可能保存与monodroid编辑文本的旧背景? (android-java:'activity.findViewById(id).getBackground();') – liotims 2013-04-05 09:09:59

1

你如何设置“错误”标志?

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

myEditTextEditTextResource.Drawable.MyErrorIcon一个实例是你的图标的Drawable要显示:除删除背景Drawable的我只想与设置。

你可以将其删除:

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

通过设置你永远都不需要碰EditText的背景资源的CompoundDrawables

+0

Mhh yes这可能会很好。我想要做的是将edittext的边框在值不好的时候置于红色,并在edittext值正常时回到默认样式。有办法做到这一点? – liotims 2013-04-05 15:03:59

+0

请修改您的问题以反映该问题,而不是在评论中显示该问题。 – Cheesebaron 2013-04-06 10:36:25