在我的一个活动中,我有三个EditTexts和一个OK按钮. OnFocuschangelistener设置为所有三个EditTexts.每次焦点丢失时,听众都应该触发.
在EditTexts之间切换非常有效.但是,如果用户按下OK按钮,则在按下按钮之前没有针对用户聚焦的EditText触发的焦点改变(失去焦点).
我的代码出了什么问题?
private class MyOnFocuschangelistener implements OnFocuschangelistener { private EditText editText; public MyOnFocuschangelistener(final EditText editText) { super(); this.editText = editText; } @Override public void onFocusChange(final View view,final boolean isFocused) { if (!isFocused) { if (editText == editText1) { // Do a calculation } else if (editText == editText2) { // Do another calculation } else if (editText == editText3) { // Do a different calculation } } } } @Override public void onCreate(final Bundle bundle) { // ... editText1.setonFocuschangelistener(new MyOnFocuschangelistener(editText1)); editText2.setonFocuschangelistener(new MyOnFocuschangelistener(editText2)); editText3.setonFocuschangelistener(new MyOnFocuschangelistener(editText3)); // ... }
解决方法
当用户点击OK或其他按钮时,您可以尝试清除焦点….
例如
builder.setPositiveButton(android.R.string.ok,new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int whichButton) { editText1.clearfocus(); editText2.clearfocus(); editText3.clearfocus(); .... } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。