我有EditText上我的節目問題在Java鑄造爲Android
我的代碼:
Double Hi;
private EditText MyHight;
MyHight = (EditText) findViewById(R.id.editText1);
我需要插入到喜的價值上MyHight
我試試這個:
MyHight.getText().toString();
Hi= (Double)MyHight;
但我在鑄造時出錯
如何解決?
我有EditText上我的節目問題在Java鑄造爲Android
我的代碼:
Double Hi;
private EditText MyHight;
MyHight = (EditText) findViewById(R.id.editText1);
我需要插入到喜的價值上MyHight
我試試這個:
MyHight.getText().toString();
Hi= (Double)MyHight;
但我在鑄造時出錯
如何解決?
嘗試用:
Hi = Double.valueOf(MyHight.getText().toString());
你不能施放的EditText
到Double
。
你可以,但是,從String
構建新Double
:
Hi = new Double(MyHight.getText().toString());
或:
Hi = Double.valueOf(MyHight.getText().toString());
而不是做這樣的事情:
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轉換爲浮動陣列...