我有一个 EditText,右边有一个复合绘图。当我按下可绘制对象并清除文本时,我想隐藏软键盘。为此,我有以下代码:

        filterText.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
                if (filterText.getCompoundDrawables()[2] == null) {
                        // cross is not being shown so no need to handle
                        return false;
                }
                if (event.getAction() != MotionEvent.ACTION_DOWN) {
                        // only respond to the down type
                        return false;
                }
                if (event.getX() > filterText.getMeasuredWidth() -
                        filterText.getPaddingRight() - d.getIntrinsicWidth()) {
                        filterText.setText("");
                        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                        imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
                        return false;
                }
                else {
                    return true;
                }
        }
    });

但它不起作用,因为 editText 似乎保持焦点。我试过 filterText.clearFocus 但没办法。

谢谢

最佳答案

只是一个建议:你不能在 Button 的右侧放置一个 EditText 吗?

关于Android 从复合可绘制对象中隐藏软键盘,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3046615/

10-11 17:19