SER*_*PRO 30 android nine-patch android-edittext android-resources android-drawable
我刚遇到一个我不知道如何解决的问题.它看起来很傻但我找不到解决方法.
我在android中有一个带有几个EditText的表单,当你提交表单时,它检查那些EditText,如果他们有错误的数据,我将EditText更改为红色边框(应用9patch图像).
myEditText.setBackgroundResource(R.drawable.edittext_red);
Run Code Online (Sandbox Code Playgroud)
问题是,我想在用户更改EditText时恢复android的默认样式,但我不知道该怎么做.如果我做:
myEditText.setBackgroundResource(0);
Run Code Online (Sandbox Code Playgroud)
它会删除所有内容,而这不是我想要的.
谢谢!
Mar*_*moy 56
首先,在使用自己的ninepatch调用setBackgroundResource之前,请存储EditText的原始背景,如下所示:
Drawable originalDrawable = myEditText.getBackground();
Run Code Online (Sandbox Code Playgroud)
然后,如果用户输入了错误的数据,您可以设置红色边框ninepatch:
myEditText.setBackgroundResource(R.drawable.edittext_red);
Run Code Online (Sandbox Code Playgroud)
稍后,当您想要恢复EditText的外观时,请使用存储的drawable:
myEditText.setBackgroundDrawable(originalDrawable);
Run Code Online (Sandbox Code Playgroud)
或者,您可以直接引用默认的Android EditText背景,如下所示:
myEditText.setBackgroundResource(android.R.drawable.edit_text);
Run Code Online (Sandbox Code Playgroud)
在androiddrawables中,您可以看到不同的drawable如何查找不同版本的Android,并获取其资源标识符.此方法应适用于所有drawable,而不仅仅是EditText
这些(和其他android资源)也可以在你自己的系统上找到,在android-sdk文件夹中
<android-sdk文件夹的路径>/android-sdk/platforms/android- <API level>/data/res /
| 归档时间: |
|
| 查看次数: |
16796 次 |
| 最近记录: |