如何在Android软键盘上隐藏/禁用完成按钮?

时间:2019-01-31 12:39:26

标签: android textwatcher android-keypad

我正在使用Amazon S3 api。

问题:使用TextWatcher。一旦用户在edittext中输入了3个以上的字符,就会调用api并显示匹配的结果。用户单击软键盘上的完成/输入按钮后,问题立即开始,再次调用api并再次搜索。我可以以某种方式停止第二个电话吗?谢谢!

5 个答案:

答案 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