我正在使用Amazon S3 api。
问题:使用TextWatcher。一旦用户在edittext中输入了3个以上的字符,就会调用api并显示匹配的结果。用户单击软键盘上的完成/输入按钮后,问题立即开始,再次调用api并再次搜索。我可以以某种方式停止第二个电话吗?谢谢!
答案 0 :(得分:0)
也许您可以尝试覆盖控件中的onKeyListener方法,以使其检测所按下的键是否为'enter'并添加您希望您的'enter'键执行的代码?
edittext.setOnKeyListener(new View.OnKeyListener() {
答案 1 :(得分:0)
您可以从xml进行更改:
<EditText
...
android:imeOptions="actionNone"/>
或来自代码:
editText.setImeOptions(EditorInfo.IME_ACTION_NONE);
只要用户触发软键,它将删除完成按钮
答案 2 :(得分:0)
只需完成操作,然后单击并隐藏软键盘
editText = (EditText) findViewById(R.id.edit_text);
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
// hide your keyboard here
try {
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
if (inputMethodManager != null && activity.getCurrentFocus() != null) {
inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
return false;
}
});
答案 3 :(得分:0)
添加
android:maxLines="1"
要禁用xml和enter按钮。
答案 4 :(得分:0)
您可以像editText.setImeOptions(EditorInfo.IME_ACTION_NONE);
但它不会隐藏Enter / Next