Я разрабатываю приложение, в котором есть 4 текстовых поля для ввода данных, и я столкнулся с проблемой производительности при перемещении фокуса с одного на другой. Когда в поле вводится символ, я использую addTextChangedListener для отслеживания текста и перемещения фокуса в следующее текстовое поле. Это отлично работает на версиях андроида до 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 требуется некоторое время для перемещения фокуса.
Я тестировал это на двух разных Samsung Galaxy s3 один с 4.0.4 и один с 4.1.1.
Кто-нибудь еще видел это?
Большое спасибо
Пол