2015-06-20 2 views
0

Я написал программу для формы, которая имеет от 7 до 8 полей, что я хочу сделать, предположим, что я ввожу значение в EditText 1 как 50, а в EditText 2 - 60, EditText 3 должен автоматически рассчитываться до 3000 без нажатия кнопки или выполнения какого-либо события. Может ли кто-нибудь предложить мне, как это сделать?Как умножить два значения edittext и автоматически отобразить результат в третьем EditText в Android

double a = Double.parseDouble(editDieselRate.getText().toString()); 
double b = Double.parseDouble(editDieselQty.getText().toString()); 
double c = a * b; 
editAmount.setText(String.valueOf(c)); 

Я знаю, что я не прав, но просто дал ему попробовать, и получил номер формата исключение

Благодарим Вас

+0

Вы должны реализовать 'TextChangedListener' для этого ... поиска на _Google_ –

+0

Пожалуйста, проверьте, что эта ссылка может вам помочь: http: //stackoverflow.com/questions/18091425/using-textwatcher-to- get-values-into-to-two-edittext-and-multiplying-these-va –

ответ

1

Попробуйте этот код,

editDieselRate.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

      } 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 

      } 

      @Override 
      public void afterTextChanged(Editable s) { 
       Double v1 = Double.parseDouble(!editDieselRate.getText().toString().isEmpty() ? 
         editDieselRate.getText().toString() : "0"); 
       Double v2 = Double.parseDouble(!editDieselQty.getText().toString().isEmpty() ? 
         editDieselQty.getText().toString() : "0"); 
       Double value = v1 * v2; 
       editAmount.setText(value.toString()); 
      } 
     }); 

     b.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

      } 

      @Override 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 

      } 

      @Override 
      public void afterTextChanged(Editable s) { 
       Double v1 = Double.parseDouble(!editDieselRate.getText().toString().isEmpty() ? 
         editDieselRate.getText().toString() : "0"); 

       Double v2 = Double.parseDouble(!editDieselQty.getText().toString().isEmpty() ? 
         editDieselQty.getText().toString() : "0"); 
       Double value = v1 * v2; 
       editAmount.setText(value.toString()); 
      } 
     }); 

Также проверьте, если значение editDieselQty или editDieselRate - это число, иначе вы получите исключение. Я не добавил, что проверка

+0

Это сработало сэр, спасибо –

Смежные вопросы