2012-02-06 35 views
1

獲取號碼,我想從一個EditTextgetText()方法得到float從EditText上

這是我做過什麼:

  • 在layout.xml
<EditText 
    android:id="@+id/et_Amount" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:inputType="number" 
    android:hint="Units of fuel you purchased"> 

    <requestFocus /> 
</EditText> 
  • 在我的活動
public void setAmount() { 
    EditText tx = (EditText) findViewById(R.id.et_Amount); 
    float amount = Float.valueOf(tx.getText().toString()); 
} 

不幸的是,拋出NumberFormatException。有任何想法嗎?

+0

NVM,我知道了。它會工作,如果tx.setText(「0」); – Paul 2012-02-06 07:09:36

回答

3

當編輯文本中沒有任何內容時,我遇到了同樣的問題。嘗試先檢查一下。

如果編輯文本有值android:text =「」或「123rt」或「45 *」或「asdh」等,我面臨同樣的異常問題。

EDIT 這是我的唯一建議

android:inputType="number" 

只允許整數值例如20,30等不是浮動值,例如20.002,30.345等

使用

android:numeric="integer|decimal" 

用戶允許浮點值進入編輯文字

1

你所得到的數字格式例外,是因爲有返回空值(假設該值爲空)。它不會從null分析0。

1

對於實數(float或double),請使用android:inputType="numberDecimal"。更多關於input types

<EditText 
     ... 
     android:inputType="numberDecimal" /> 

來獲取值,使用類似:

EditText amount_text = (EditText) rootView.findViewById(R.id.et_Amount); 
double amount = Double.parseDouble(amount_text.getText().toString());