質問

ボタンの上に座っている数値縁組を持つ活動があります。

私はあなたが編集テキストをクリックしてハードキーボードを使っていくつかの番号を入力した場合、ハードエンターを押すと、編集テキストの下のボタンにフォーカスが移動し、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;
        }
    });
}
.

しかし、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