#java #android
#java #Android
Вопрос:
I'm trying to perform a real time calculation using two edit text and get the result in third edit text it is not calculating
e1 textchanger
@Override public void afterTextChanged(Редактируемые файлы) {
double e1=Double.parseDouble(et1.getText().toString().trim());
double e2=Double.parseDouble(et2.getText().toString().trim());
double e3=e1 e2;
et3.setText(String.valueOf(e3));
}
});
et2 textchanger
@Override
public void afterTextChanged(Editable s) {
double e1=Double.parseDouble(et1.getText().toString().trim());
double e2=Double.parseDouble(et2.getText().toString().trim());
double e3=e1 e2;
et3.setText(String.valueOf(e3));
}
});
et3 textchanger
@Override
public void afterTextChanged (Редактируемые файлы) {
double ans=(Double.parseDouble(et1.getText().toString().trim())) (Double.parseDouble(et2.getText().toString().trim()));
et3.setText(String.valueOf(ans));
}
});
Значения edit text не вычисляются
даже при попытке выполнить вычисление с помощью text watcher в et1 и et2 приложение вылетает
Комментарии:
1. Это не имеет смысла, в TextWatcher et3 вы меняете текст et3? это вызовет бесконечный вызов
afterTextChaged
…2. как выполнить вычисление
3. Что представляют тексты редактирования? Я полагаю, et1 и et2 предназначены для ввода чисел, что означает et3?
4. et3 является результатом вычисления
5. выше приведен недавно обновленный код
Ответ №1:
Добавьте средство просмотра текста в editText1 и editText2. Выполните вычисление afterTextChanged
и установите значение в третий EditText. Примечание: Не добавляйте TextWatcher в свой результирующий EditText.
Комментарии:
1. Или добавьте простую кнопку, которая запускает вычисление… без TextWatchers
2. я хотел выполнить вычисления в реальном времени, брат
3. Для работы в реальном времени вам нужно использовать TextWatcher или входной фильтр. В вашем случае было бы достаточно TextWatcher.
4. @SanthoshKumarSrikanthaMurali смотрите приведенный выше код для et3, и вы сказали, что для выполнения вычисления в et1 и et2 снова происходит сбой
5. Что за сообщение об ошибке? И вы можете опубликовать код? @Ragnarok
Ответ №2:
В каждом TextWatcher (et1 и et2) вам нужно проверить, не равен ли текст другого edit text нулю.
Вероятно, лучше всего проверить оба в обоих наблюдателях:
@Override
public void afterTextChanged(Editable s) {
if (et1.getText() != null amp;amp; et2.getText() != null) {
double e1=Double.parseDouble(et1.getText().toString().trim());
double e2=Double.parseDouble(et2.getText().toString().trim());
double e3=e1 e2;
et3.setText(String.valueOf(e3));
}
}