参见英文答案 >
How to do something after user clicks on my EditText5个
我的应用程序有两个EditText元素.两者都实现OnClickListener,如下所示:
我的应用程序有两个EditText元素.两者都实现OnClickListener,如下所示:
editText1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Open search dialog doSomeStuff(); } });
doSomeStuff()表示:单击文本字段通过onSearchRequested()打开一个搜索对话框.搜索结果将写回文本字段.
这可以正常工作,但是如果我单击其他文本字段,我总是要在搜索对话框出现之前单击两次.哪里来自哪里,如何更改,以便仅在点击一次时才能出现搜索对话框?
解决方法
对于EditText字段,最好使用OnKeyListener.随着KeyEvent中的传递,您可以根据EditText字段如何点击/获取焦点进行不同的反应.否则,您还可以尝试一个OnFocusChangeListener,或者如果要使用TextWatcher查看添加的每个字符,您可以实现一个TextWatcher并使用addTextChangedListener ..