画面に 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に移動しません。
どんな助けでも大歓迎です。