Я хочу выполнить вычисление в реальном времени с помощью textwatcher, но оно не вычисляется

#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));
    }

}