3つのEditText要素があり、入力に4文字ある場合は1つのフィールドから次のフィールドにジャンプしたい。HTCロングプレスでTextWatcherのカウント文字が失敗する
私はこのためにTextWatcherを使用:
getEditView(R.id.edit_code1).addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void afterTextChanged(Editable input) {
if(input.length() == 4){
getEditView(R.id.edit_code2).requestFocus();
}
}
});
のEditTextのためinputTypeは4を得るためにRを保持しているような「textCapCharacters」
番号を取得するには、キーの上にlongpressをやって、ありますほとんどのデバイスは、ユーザーがボタンを押し続けるまで文字を追加せず、文字4が選択された後にはAfterTextChangedを起動します。 HTCキーボード(この場合、2.3.5のHTC Desire)ではそうではありません。ユーザーがまだボタンを押しているにもかかわらず、RがEditTextに追加され、afterTextChangedが起動され、コードはそのジョブを実行し、次のフィールドにフォーカスを置きます。
どのようにこの望ましくない動作を防止できますか? onKeyDown/Upを見ることは、通常のキーストロークを登録しないため、役に立ちません。
それは私が恐れていたことです、ありがとう、私はクライアントへの選択。とにかく長押しの代わりに数字入力を使用することは、HTCキーボードで常に可能です。 – Jurriaanr