SearchView:单击完成按钮时没有任何反应

时间:2017-11-16 10:17:11

标签: android

这里摘录:

 searchViewEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);
        searchViewEditText.setSingleLine(true);

键盘打开时,显示按钮完成。 好。

结果如下:

done

但是当我点击按钮完成时,没有任何事情发生。我希望键盘会隐藏。

2 个答案:

答案 0 :(得分:1)

你可以使用它(设置一个特殊的监听器,当在EditText上执行一个动作时被调用),它既适用于DONE又适用于RETURN:

max.setOnEditorActionListener(new OnEditorActionListener() {
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) {
            Log.i(TAG,"Enter pressed");
        }    
        return false;
    }
});

答案 1 :(得分:0)

我认为您必须以编程方式关闭键盘。为此,请将以下逻辑添加到TextView侦听器:

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) {
            InputMethodManager inputMethodManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
               //Replace <<active view>> With the active view
                inputMethodManager.hideSoftInputFromWindow(<<active view>>.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
            }
            return false;
        }
    });

我希望这可以帮到你:)