У вас есть два способа сделать это:
Выполнить посимвольную обработку одного поля для вычисления другого поля
Для этого вы можете использовать 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();
}
});
В любом случае, в зависимости от конструкции вы можете проверить правильность ввода.