Ответ 1
У вас есть два способа сделать это:
-
Выполняет символьный характер обработки одного поля для вычисления другого поля
Для этого вы можете использовать addTextChangedListener с наблюдателем текста, где вы изменяете метод onTextChanged для обработки данных.
//from editHandle = (EditText) findViewById(R.id. <<your EditText>> ); editHandle.addTextChangedListener(redoWatcher); // listener private TextWatcher redoWatcher = new TextWatcher() { public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { recalculate(); } @Override public void afterTextChanged(Editable s) { } };
Теперь вы можете написать метод пересчета для обработки данных.
2. Другой метод - вычислять данные, когда пользователь меняет фокус на другое поле.
Здесь вам нужно использовать onFocusChangeListener:
<Your EditView>.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
recalculate();
}
});
В любом случае, в зависимости от дизайна, вы можете проверить правильность ввода.