データを入力するための 4 つのテキスト フィールドを持つアプリケーションを開発していますが、フォーカスを別のフィールドに移動するときにパフォーマンスの問題が発生しました。フィールドに文字が入力されている場合、addTextChangedListener を使用してテキストを監視し、フォーカスを次のテキスト フィールドに移動します。これは、Android 4.1.1 より前のバージョンでは問題なく動作していましたが、4.1.1 でのテスト以降、次のフィールドにフォーカスが表示される前にキーを押すと、顕著な遅延が発生します。これは、ユーザーがすばやく入力すると、キーを押したことが失われる可能性があることを意味します。
次のコードを使用した簡単なアプリがあります
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
one = (EditText)findViewById(R.id.editText1);
two = (EditText)findViewById(R.id.editText2);
one.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
two.requestFocus();
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
});
}
問題を浮き彫りにします。4.0.4 ベースのデバイスで実行すると問題ありませんが、4.1.1 ではフォーカスを移動するのに時間がかかります。
4.0.4 と 4.1.1 の 2 つの異なる Samsung Galaxy s3 でこれをテストしました。
他の誰かがこれを見たことがありますか?
どうもありがとう
ポール