从Android Studio上的EditText获取十进制数字

时间:2015-09-16 04:13:51

标签: java android

编辑:!解决

我知道之前已经发布了这个,但我从那些看到的答案对我不起作用。

我正在尝试从一个文本字段(我已指定为十进制输入)获取输入,但除了toString之外,我无法想到任何其他方式来获取它的值。

我在崩溃下面的内容和错误日志说

java.lang.IllegalStateException:无法执行活动的方法

public void buttonOnClick(View v){
    // do something when the button is clicked

    Double inputNum;

    TextView mField = (TextView) findViewById(R.id.mField);
    TextView kmField = (TextView) findViewById(R.id.kmField);

    if(mField.length() > 0){
        inputNum = ( Double.valueOf(kmField.getText().toString()) )/ 0.62137;
        mField.setText(inputNum.toString());
    }
}

2 个答案:

答案 0 :(得分:3)

  

java.lang.IllegalStateException:无法执行的方法   活性

出现此问题的可能原因是kmField.getText().toString()返回null。所以请在这里为kmField进行一些验证

public void buttonOnClick(View v){
    // do something when the button is clicked

    Double inputNum;

    TextView mField = (TextView) findViewById(R.id.mField);
    TextView kmField = (TextView) findViewById(R.id.kmField);

    if(kmField.getText().toString().isEmpty()){
        inputNum = ( Double.valueOf(kmField.getText().toString()) )/ 0.62137;
        mField.setText(inputNum.toString());
    }
}

答案 1 :(得分:1)

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" />
你的java文件中的

EditText 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)
    {
       double S0 = Double.parseDouble(textS0.getText().toString());
    }
});