2011-09-07 68 views
0

我的應用程序有一些數字用戶輸入字段,需要在進行下一個意圖之前進行健全性檢查。 我讀取viewText字段,將它們轉換爲double,然後執行(數字)測試,但奇怪的事情發生,我發現雖然代碼在我的HTC在調試中運行,但如果我發佈然後下載發佈的版本,它會下降。我的代碼被sumarised爲;閱讀ViewText轉換爲雙重

String sFy; 
    double mFy=0;D 
    sFy=(txtFy.getText().toString()); 
    mFy=Double.parseDouble(sFy); 

如果sFy爲空,則.parsedouble崩潰。如果我使用;

sFy=(txtFy.getText().toString()); 
    mFy=getDouble(sFy); 

    private double getDouble(String string){ 
    double temp=0.0; 
    try { 
     temp = Double.parseDouble(string.trim()); 
    } catch(NumberFormatException nfe) { 
     System.out.println("getDouble, Could not parse " + nfe); 
    }   
    return temp;   
} 

它工作,即使sFy是空的。

任何人都可以告訴我爲什麼,或者建議一個'正確的'方法嗎?

+0

喲,你的意思是說你的getDouble工作,即使sFy爲空? – CommonMan

+0

是的,即使ViewText框是空的 – Graham

回答

0

也許這樣的:

String sFy; 
double mFy=0; 
sFy = txtFy.getText(); 
if ((sFy != ""){ 
    mFy=Double.parseDouble(sFy); 
} 

或者,也許我還沒有真正理解你的問題......

+0

我是Android/Java的新手,並且正在尋找方法的確認,並且可能想到爲什麼應用程序可以在調試時在手機上運行,​​而不是在同一部手機上運行來自市場。我猜,兩分之一的比例並不算太差。 – Graham

+0

檢查是否與用於調試測試和手機的Android版本的SDK版本沒有衝突。 –

0

你getDouble的情況下返回0.0有NumberFormatException異常。 你看到調試器來到System.out.println(「getDouble,Could not parse」+ nfe);