按下输入按钮后停止打开键盘?

时间:2014-06-02 21:23:14

标签: java android android-studio

我有一个活动,数字EditText位于按钮上方。

我注意到,如果您单击编辑文本并使用硬键盘键入某些数字,请按硬键,将焦点移至编辑文本下方的按钮,然后会出现QWERTY键盘。我该如何阻止这种情况发生?

我尝试使用以下内容控制回车键:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activityEnterAmt);

    final EditText editText = (EditText) findViewById(R.id.editTextEnterAmt);
    editText.setOnEditorActionListener(new TextView.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 or IME Action Submit pressed");
                saveButtonClick(editText);
            }
            return false;
        }
    });
}

但是我真的想阻止它按下回车键打开键盘。我真的不明白为什么会这样做?

由于

1 个答案:

答案 0 :(得分:1)

我已经通过在EditText失去焦点时关闭软键盘来修复此问题:

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (v == editText) {
                if (hasFocus) {
                    ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(editText,
                            InputMethodManager.SHOW_FORCED); // open keyboard

                } else {
                    ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(
                            editText.getWindowToken(), 0); // close keyboard
                }
            }
        }
    });