我的程序中有EditText
我的代码:
Double Hi;
private EditText MyHight;
MyHight = (EditText) findViewById(R.id.editText1);
我需要在MyHight上插入Hi的值
我试试这个:
MyHight.getText().toString();
Hi= (Double)MyHight;
但我在施法时遇到错误
如何解决?
答案 0 :(得分:4)
尝试:
Hi = Double.valueOf(MyHight.getText().toString());
答案 1 :(得分:1)
您无法将EditText
投射到Double
。
但是,您可以从Double
:
String
Hi = new Double(MyHight.getText().toString());
或:
Hi = Double.valueOf(MyHight.getText().toString());
答案 2 :(得分: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);
我甚至为Arrays做了这个,从int转换为float数组......