0

画面に 6 つの編集テキストがあります (6 桁の入力に使用)。1 つの EditText フィールドに 1 桁を入力すると、フォーカスは次のフィールドに移動する必要があります。一部の編集テキスト フィールドでスペースを戻すと、フォーカスは前の編集テキスト フィールドに移動するはずです。

このために、以下のコードを使用しました

 EditText2.addTextChangedListener(new TextWatcher() {

        public void onTextChanged(CharSequence s, int start, int before, int count) {

            if (EditText2.getText().toString().length() == 1) {
                EditText3.requestFocus();
            }
            else if (EditText2.getText().toString().length() == 0) {
                EditText1.requestFocus();
            }
        }

        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        public void afterTextChanged(Editable s) {

        }
    });

通常、編集テキストでバックスペースを押さなければ ontextchange リスナーは機能します。EditText2 でバックスペースを押して EditText1 に着陸すると (値が存在します)、何かを入力しようとします。addTextChangedListenerが機能していないため、カーソルはEditText2に移動しません。

どんな助けでも大歓迎です。

4

1 に答える 1