У меня есть 2 редактирования текстовых полей ETPredictKm (длинное значение) и ETPredictFuelQty (двойное значение). Если я вставляю одно значение, другое получает автогенерирование, когда я нажимаю соответствующий EditText. Я использую onFocusListener. Моя проблема заключается в том, что когда я вставляю значение km для вычисления FuelQty, он вычисляется должным образом. Но когда я ввожу количество топлива и нажимаю на ETPredictKm, я получаю недопустимый длинный: «Исключение.Недопустимый длинный: "" Исключение
Пожалуйста, помогите мне с вашими предложениями. Спасибо.
Вот некоторые код:
try
{
predictKm = Long.parseLong(ETPredictKm.getText().toString()); //Get the error here
predictFuelQty = Double.parseDouble(ETPredictFuelQty.getText().toString());
}
catch(NumberFormatException ne)
{
ne.printStackTrace();
}
if(isChkLastMileage1 ==true || isChkLastMileage5==true||isChkLastMileage10==true)
{
if(ETPredictKm.hasFocus())
{
if(predictFuelQty!=0)
{
//predictionMileage is double too
predictKm =(long) (predictionMileage*predictFuelQty);
ETPredictKm.setText(String.valueOf(predictKm));
}
}
else if(ETPredictFuelQty.hasFocus())
{
// This value is calculated properly
if(predictKm!=0)
{
predictFuelQty =predictKm/predictionMileage;
ETPredictFuelQty.setText(new DecimalFormat("##.##").format(predictFuelQty)+" Litres");
}
}
}
Я получил эту работу, поставив синтаксические выражения в отдельные блоки try-catch. Не уверен, что это правильная практика, но работал на меня. Спасибо за объяснение и ваше время, хотя, я уверен, что это только расширит мои знания. –