好的,所以我只有一个EditText字段和一个按钮,按下时会触发AsyncTask.
EditText playerName = (EditText)findViewById(R.id.playerEditText);
if(playerName.getText().toString().length() == 0 )
playerName.setError("Player name is required!");
else {
// do async task
}
Run Code Online (Sandbox Code Playgroud)
问题是,即使在我输入有效文本进行搜索之后,错误消息似乎仍然保持不变.一旦EditText不为空,有没有办法删除错误?
Ale*_*ran 134
在你的else括号中,put playerName.setError(null),这将清除错误.
小智 51
API文档:"当任何键事件导致TextView文本发生更改时,图标和错误消息将重置为null." 虽然不是这样 - 因此我们可以将其视为错误.
如果使用inputType,例如textNoSuggestions,textEmailAddress,textPassword,则在键入字符后将取消设置错误.几乎与文档有关,但同样不完全 - 当你删除一个字符时,错误仍然存在.看来,使用addTextChangedListener和setError(null)的简单解决方法可以实现承诺的行为.
除了Android 4.2上有关于图标丢失的帖子.所以要小心使用.
Jan*_*sse 12
试试这个监听器:
playerName.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable edt){
if( playerName.getText().length()>0)
{
playerName.setError(null);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55834 次 |
| 最近记录: |