Android 从edittext获取十进制数
我知道已经有人问过类似的问题,但我很难从键盘上得到一个十进制数 onCreate方法中的Java代码应该是:Android 从edittext获取十进制数,android,android-edittext,Android,Android Edittext,我知道已经有人问过类似的问题,但我很难从键盘上得到一个十进制数 onCreate方法中的Java代码应该是: textS0 = (EditText)findViewById(R.id.editS0); Button btn_S0 = (Button)findViewById(R.id.getS0); btn_S0.setOnClickListener(new View.OnClickListener() { public void onClick(View v) {
textS0 = (EditText)findViewById(R.id.editS0);
Button btn_S0 = (Button)findViewById(R.id.getS0);
btn_S0.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
//how should I get here the number from keyboard?
//I think I should be something like
//double S0=textS0.getText()....
}
});
这就是我的XML文件所包含的内容
<EditText
android:id="@+id/editS0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/S0"
android:inputType="numberDecimal" />
<Button
android:id="@+id/getS0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/setS0" />
</LinearLayout>
只需执行以下操作:
double S0 = Double.parseDouble(textS0.getText().toString());
您可能会遇到字符串中的空指针异常,所以请尝试此
Double BText=ParseDouble(String.valueOf(edittext.getText()));
double ParseDouble(String strNumber) {
if (strNumber != null && strNumber.length() > 0) {
try {
return Double.parseDouble(strNumber);
} catch(Exception e) {
return -1;
}
}
else return 0;
}
您必须将字符串解析为双精度:当您执行getText()时,它将返回字符串,只需执行一个简单的double.parseDouble()即可获得所需的值try{double.parseDouble(textS0.getText().toString())}catch(NumberFormatException e){e.printStacktrace();}@ChorWaiChun,返回一个本身包含内容的对象。您应该调用
EditText.getText().toString()
来检索内部的多汁字符串。如果字符串为空,则会导致java.lang.NumberFormatException:空字符串
。
double ParseDouble(String strNumber) {
if (strNumber != null && strNumber.length() > 0) {
try {
return Double.parseDouble(strNumber);
} catch(Exception e) {
return -1;
}
}
else return 0;
}