2013-08-19 3 views
0

Я реализую программу, которая должна вычислять от Цельсия до Фаренгейта и в противном случае. Но если я запустил программу, она сбрасывается, когда я нажимаю кнопку «вычислять». В Java я получаю следующее сообщение об ошибке, если метод начинается в строке 72Android сбой с java.lang.stackoverflowError

enter image description here

627 627 com.example.ubersatzer AndroidRuntime FatalException: main 
627 627 com.example.ubersatzer AndroidRuntime java.lang.StackOverflowError 
627 627 com.example.ubersatzer AndroidRuntime at.come.example.ubersatzer.InputFragment.isConvertFromCelsiusToFahrenheit (InputFragement.java:72) 

здесь код из класса деятельности, соответствующие методы:

public void onClick(View view) { 
    switch (view.getId()) { 

    case R.id.buttonConvert: 
     convert(); 
     break; 
    } 
} 


private void convert() { 
      if (inputFragment.isConvertFromCelsiusToFahreinheit()) { 
     doConvertFromCelsiusToFahrenheit(); 
    } 
} 

private void doConvertFromCelsiusToFahrenheit(){ 
    String celsiusStringValue = inputFragment.getCelsiusValue(); 
    double celsiusValue = Double.parseDouble(celsiusStringValue); 
    double fahrenheitValue = ((celsiusValue * 9)/5) + 32; 
    outputFragment.setOutput(String.valueOf(fahrenheitValue) + "F"); 
} 

И здесь код isConvertFromCelsiusToFahrenheit() класса InputFragment.java

public boolean isConvertFromFahrenheitToCelsius() { 
       if (inputFahrenheit.getText() != null 
       && inputFahrenheit.getText().toString().trim().length() > 0) { 
      return true; 
     } 

     return false; 
    } 


    public boolean isConvertFromCelsiusToFahreinheit(){ 
     return !isConvertFromCelsiusToFahreinheit(); 
    } 
+8

после соответствующего фрагмента кода – Blackbelt

+3

Я заподозрить рекурсивный метод с неправильным выходом – sanbhat

+0

не отправляю снимок LogCat .. Post это как текст в вашем вопросе –

ответ

0

Из журналов есть рекурсивный вызов в строке 72 InputFragment.java. Просто убедитесь, что этот завершается.

+0

спасибо, я решил :) – Freed20

5

вот ваша проблема

public boolean isConvertFromCelsiusToFahreinheit(){ 
     return !isConvertFromCelsiusToFahreinheit(); 
    } 

метод isConvertFromCelsiusToFahreinheit рекурсивно, называющий себя

+0

lol thanks :) Я вижу. очень lol неудача меня. Черт, товарищи, очень приятно здесь и очень быстрая поддержка :) – Freed20