문제

단추 위에 앉아있는 숫자 EditText가있는 활동이 있습니다.

텍스트 편집을 클릭하고 하드 키보드를 사용하여 일부 숫자를 입력 한 다음 하드 입력을 누르면 텍스트 편집 단추 아래 버튼으로 포커스가 이동하고 QWERTY 키보드가 나타납니다.이 일이 일어나지 않도록 어떻게 멈추게합니까?

다음을 사용하여 Enter 키를 제어하려고했습니다.

@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;
        }
    });
}
.

그러나 Enter 키를 누를 때 키보드를 열지 않도록 정말로 멈추고 싶습니다.왜 이것이이 일을하는지 정말로 이해하지 못합니까?

감사합니다

도움이 되었습니까?

해결책

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
                }
            }
        }
    });
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top