私はこのような4つのEditTextブロックとPINコード認証のようにiPhoneを実装しようとしています:Androidの仮想キーボードイベント
私はフィールドが、私はジャンプすることができますので、変更されたかどうかを確認するTextWatcherを使用していますブロック間。
@Override
public void afterTextChanged(Editable s) {
if (del && index > 0) {
pin[index - 1].requestFocus();
}
else if (! del && ind < 3) {
pin[index + 1].requestFocus();
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
del = count != 0;
}
すべてのブロックが空で、DEL/BACKSPACEを押すと、私は戻って、前のブロックに行くと、そのの値をクリアしたいとき以外は正常に動作します:ここで は、コードがあります。 これは、何もしない空のブロックに変更が加えられていないため、TextWatcherが失敗するところです。
私はkeyEventListenerを使用しようとしましたが、実際のデバイスではなく、仮想キーボード経由でエミュレータ上のイベントを捕捉します。
私はDELイベントやこれを実装する他の方法をどのように捕まえることができますか?
にコードの残りのポートに良いアイデアだと思います。 TextWatcherはonTextChangeイベントにバインドされているため、何も変更されていなければ起動しません。適切なイベントがある場合は、まだドキュメントを確認しています。しかし、提案ありがとう –