Android 从edittext获取十进制数

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) {

我知道已经有人问过类似的问题,但我很难从键盘上得到一个十进制数

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)
    {
        //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());

您可能会遇到字符串中的空指针异常,所以请尝试此

  • 使用以下命令从edittext获取十进制数

       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;
    }