2014-03-07 35 views
-2

我在xml中有這個。雙重無效。數字格式異常在android

<EditText 
       android:id="@+id/creditlimitfield2" 
       android:hint="0" 
       android:inputType="numberDecimal" /> 

所以,在的EditText默認值爲0

代碼

,我有這個

creditlimit = (EditText) findViewById(R.id.creditlimitfield2); 
double credit_limit = Double.valueOf(creditlimit.getText().toString()); 

或者,我曾嘗試:

double credit_limit = Double.parseDouble(creditlimit.getText().toString()); 

而且

double credit_limit = new Double(creditlimit.getText().toString()); 

當我運行程序,它提供的

Numberformatexception. Invalid double "". 

提醒請該字段不爲空的錯誤。任何的意見都將會有幫助。


我看過很多問題,幾乎和它很相似,答案很少,沒有一個能幫助我解決問題。所以,請不要將其標記爲「類似問題」,也不要檢查其他問題。

+0

的可能重複[雙無效在轉換字符串到雙(http://stackoverflow.com/questions/16434386/invalid-double-in-converting-string-to-double ) –

+0

人,請仔細閱讀這兩個問題,同時標記爲重複。 這個問題關注的是使用該重複問題中給出的解決方案時出現的問題。 – Shasi

回答

1

getText()不返回android:hint中的值。所以你試圖將一個空字符串轉換爲double。改用android:text屬性。

<EditText 
    android:id="@+id/creditlimitfield2" 
    android:text="0" 
    android:inputType="numberDecimal" /> 
+0

我很確定。否則,getHint()將是無用的。 – Blackbelt

+0

@Shasi getText()不會返回提示..它將返回在EditText中設置的文本 –

+0

@JaiSoni然後在onResume中獲取文本或在按鈕上點擊因爲您調用的時間太早。可能在onCreate – Raghunandan

0

看起來像creditlimit.getText().toString()不會返回有效的double值。確保您在EditText中輸入了有效的雙倍數。

Numberformatexception. Invalid double "" 

空字符串不是有效的雙精度型。

此外,我想你有這個剛剛初始化之後確保你得到的EditText上按一下按鈕或onResume

double credit_limit = Double.valueOf(creditlimit.getText().toString()) 

文本如果你想默認值黑帶遵循的帖子。

+1

@Shasi你怎麼能確定。你stacktrace建議它不是0它的「」空字符串 – Raghunandan

+0

你可以檢查我的評論在黑帶的答案請.. – Shasi

+0

@Shasi有一個按鈕。在edittext中輸入數字。從按鈕點擊或onResume中獲取來自edittext的文本。你做到了嗎? – Raghunandan

0

試試這個
Sting limit=creditlimit.getText().toString(); double credit_limit =0; if(limit!=null && !limit.isEmpty()){ credit_limit = Double.parseDouble(limit); }