2013-08-19 118 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"); 
} 

這裏類InputFragment.java的isConvertFromCelsiusToFahrenheit()的代碼

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的快照相關片段。張貼它作爲你的問題中的文本 –

回答

0

從日誌中,在InputFragment.java的第72行有一個遞歸調用。只要確保這個結束。

+0

謝謝我解決了:) – Freed20

5

這裏是你的問題

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

方法isConvertFromCelsiusToFahreinheit遞歸調用本身

+0

哈哈謝謝:)我看到了。我非常失望。 THanks隊友,在這裏很好,支持得非常快:) – Freed20