- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 setError
方法来显示当焦点从该字段移开时 EditText
字段是否被错误填充。如果它被正确填充,我会显示一个图标:drawable.validated
这是我的代码:
@Override
public void afterTextChanged(Editable s) {
zip.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
if (isValidZip(zip.getText().toString())) {
zip.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.validated, 0);
} else {
zip.setError(getString(R.string.zip_error));
}
}
}
});
问题是,setError
方法干扰了我手动设置图标。因此,即使字段已验证,我也看不到 drawable.validated
图标。
有关我何时收到错误的更多详细信息:
案例 1 我第一次正确填写了 EditText 字段 -> 我从该字段更改了焦点 -> 我可以看到 validated
图标。请参见以下屏幕截图:
CASE 2 我填写 EditText
zip 字段不正确 -> 我将焦点更改为手机号码字段 -> 我在 zip 中看到错误field-> 回到 zip 字段并正确填写。 zip 中的错误消失了 -> 将焦点更改为手机号码字段 -> 现在我在 zip 字段中看不到 VALIDATED
图标,即使它已正确填写也是如此:
drawable.validated
是蓝色标记。
12345
是zip
字段
可能是什么问题以及如何解决?
最佳答案
首先,为什么每次文本更改时都setOnFocusChangeListener
,不需要这样,设置一次即可。
我刚刚创建了测试项目并进行了测试,工作正常
mEditText = (EditText) findViewById(R.id.edit_text_input);
mEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
if (isValidZip(mEditText.getText().toString())) {
mEditText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_validated, 0);
} else {
mEditText.setError(getString(R.string.error_invalid_zip));
}
}
}
});
private boolean isValidZip(String s) {
return s.equals("correct");
}
按预期工作。我认为您的问题是每次文本更改时您都在设置更改监听器。
您可以尝试我的应用程序看它是否正常工作https://dropmefiles.com/a9ydI
这里是完整源码的链接
关于android setError 方法干扰手动设置图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35146105/
我正在使用 setError 方法来显示当焦点从该字段移开时 EditText 字段是否被错误填充。如果它被正确填充,我会显示一个图标:drawable.validated 这是我的代码: @Over
我有这几行代码来验证表单输入。然而,它不输出任何东西——只是一个空白框。请问我错过了什么? public void onClick(View view) { if( view.getId(
我已经在两个编辑文本上实现了设置错误的代码。 首先获取任何没有空值或空值的字符串。 其次获取任何没有 null 或空值的字符串,并且必须有一些 Double 值。 代码如下 import java.u
当我尝试验证我的用户名和密码时,我收到一条错误消息,提示未找到 setError,你能帮我找出我的错误吗?我在 androidstudio1.2.2 中执行了此操作 登录.java package c
我的 android 应用程序中有以下页面(我无法截取该页面的屏幕截图,所以我只是画了它):我有 edittexts 并且我使用 edittext 的 showError 属性。 然后,在程序的某个时
我的 xml 代码的密码字段部分: ... ... 调用 setError() 时如何删除这个覆盖的红色感叹号? [更新样式] @color/edit
我对 Android 应用程序中的 EditText 进行了验证。错误消息按预期弹出,但不显示默认错误图标。 if(users.getText().toString().isEmpty()){
我创建了一个登录页面,该页面支持 2 种不同的语言(英语和法语)。 当我从一种语言翻译到另一种语言时,该页面运行良好。 但问题是,当我切换到法语时,setError 消息不再出现用于字段验证。 此代码
我有一个跨字段验证方法,如果以下任一结果为真,该方法应该会失败: country == 'United States'和stateSelect为空 country != 'United States'
我是 android 的新手,遇到以下问题:这是代码: base.OnCreate(bundle); var layout = FindViewById(Resource.Id.la
在按钮单击事件上对编辑文本执行验证检查。当验证失败时,错误代码图标显示在编辑文本框中的正确位置,但其包含字符串的箭头始终显示在其所需位置附近的一个位置。以下是为了更好地理解的快照: 代码如下: els
我在 EditText 上遇到 setError() 问题。打开 Activity 时,它会检查某些字段是否为空,如果为真,则在其上设置错误消息。但是,感叹号图标仅在我在字段中写入一些文本然后将其删除
使用 Kitkat,但也尝试使用 jellybean,但无法显示自定义错误图标。 我将这两个重载方法用于 setError(...) from Android doc我只是在做非常简单的代码:
我在 ViewPager 中有一个 Fragment。 在该 fragment 中,我有几个 EditText 的 OnTextChanged 监听器(添加到 onViewCreated 方法中)执行
我在我的工具栏中使用了一个 EditText View ,当点击“检查”图标时,应用程序将检查所有字段是否为空。如果为空,则调用 setError() 方法。但是弹出消息看起来很奇怪(在下图中)。 而
如何在无法聚焦的 EditText 中使用 setError 显示文本错误?重要的是用户不要修改此 EditText,它将针对应用程序进行修改。也许我有另一个不同于 focusable=false 的
在有多个线程调用 Console.Write 的正在运行的程序中,我可以调用 Console.SetError 来设置新流吗? IE。这是线程安全的吗? 背景:我有一个可以连续运行数天的程序,它会将大
我有 EditText在其中写入 XML:android:drawableRight="@drawable/promotion_create_promotion_plus_icn" 当setError
我目前正在使用一个 Android 应用程序,我在其中使用 setError 方法进行 EditText 验证。问题是我想更改方法内文本的颜色。 EditText UserNameEdt, Pass
这是我的设置 这是java代码 final EditText inputNo = (EditText)findViewById(R.id.inputNo); inputNo.addTex
我是一名优秀的程序员,十分优秀!