2011-09-13 74 views
1

我有EditText上我的節目問題在Java鑄造爲Android

我的代碼:

Double Hi; 
private EditText MyHight; 
MyHight = (EditText) findViewById(R.id.editText1); 

我需要插入到喜的價值上MyHight

我試試這個:

MyHight.getText().toString(); 
Hi= (Double)MyHight; 

但我在鑄造時出錯

如何解決?

回答

4

嘗試用:

Hi = Double.valueOf(MyHight.getText().toString()); 
1

你不能施放的EditTextDouble

你可以,但是,從String構建新Double

Hi = new Double(MyHight.getText().toString()); 

或:

Hi = Double.valueOf(MyHight.getText().toString()); 
0

而不是做這樣的事情:

Double Hi = Double.valueOf((EditText) findViewById(R.id.editText1)).getText().toString()) 

我用來做像Oli的答案一樣的標準演員,但厭倦了處理錯誤和這樣。所以我在這裏寫了一整個Casting類,是我對雙打做的一個例子。

public class Cast { 
/** 
* Base number cast, return the value or default 
* @param object - generic Object 
* @param defaultValue - default value to give if Object is null 
* @return - returns type Number 
*/ 
private static Number castImpl(Object object, Number defaultValue) { 
    return (object!=null && object instanceof Number) ? (Number)object : defaultValue; 
} 


/** 
* Base double cast, return the value or default 
* @param object - generic Object 
* @param defaultValue - default value to give if Object is null 
* @return - returns type double 
*/ 
public static double cast(Object object, double defaultValue) { 
    return castImpl(object, defaultValue).doubleValue(); 
} 
} 

這將允許您使用默認值,這裏是如何使用它。

Cast.cast("3", 1.0); 

我甚至這樣做的陣列也由Int轉換爲浮動陣列...