Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android,无效的双引号&引用;空白字段使程序崩溃_Java_Android_Numberformatexception - Fatal编程技术网

Java Android,无效的双引号&引用;空白字段使程序崩溃

Java Android,无效的双引号&引用;空白字段使程序崩溃,java,android,numberformatexception,Java,Android,Numberformatexception,在用户输入后,我尝试使用按钮进行计算。当我没有填写字段并按下按钮时,我的程序会崩溃,但我只想发送一条消息。。我读过很多其他类似的问题,但我不明白我必须做些什么来修复我的代码。。 有人能帮我吗??谢谢 activity_main.xml: 我得到的错误是: 谢谢 使用以下代码: public void calculate() { if(String.valueOf(mEditText1.getText()).length() == 0)

在用户输入后,我尝试使用按钮进行计算。当我没有填写字段并按下按钮时,我的程序会崩溃,但我只想发送一条消息。。我读过很多其他类似的问题,但我不明白我必须做些什么来修复我的代码。。 有人能帮我吗??谢谢

activity_main.xml:

我得到的错误是:

谢谢

使用以下代码:

    public void calculate()
{        
        if(String.valueOf(mEditText1.getText()).length() == 0)    
        mEditText1.setError("Required only alphabets");    
        else if(String.valueOf(mEditText2.getText()).length() == 0)    
        mEditText2.setError("Required only alphabets");    
        else if(String.valueOf(mEditText3.getText()).length() == 0)
            mEditText3.setError("Required only alphabets");    
        else{
        Double value1 = Double.parseDouble(String.valueOf(mEditText1.getText()));
        Double value2 = Double.parseDouble(String.valueOf(mEditText2.getText()));
        Double value3 =    Double.parseDouble(String.valueOf(mEditText3.getText()));
        calculatedValue = (value2 * value3) / value1;
        mTextView.setText(calculatedValue.toString());
       }
 }  

实现尝试。。。抓住。。从哪里可以找到crashWonder为什么
不能被视为有效数字?因为Java不会将
转换为
0
。Double value1=Double.parseDouble(String.valueOf(mEditText1.getText());Double value2=Double.parseDouble(String.valueOf(mEditText2.getText());Double value3=Double.parseDouble(String.valueOf(mEditText3.getText());你知道这会导致完全相同的异常,对吗?这里的问题是解析double。在解析之前,您必须检查输入是否正确,@0xDEADC0DE,谢谢您的通知,它工作正常!!非常感谢!!!:)
......
mEditText1 = (EditText)findViewById(R.id.editText1);
mEditText2 = (EditText)findViewById(R.id.editText2);
mEditText3 = (EditText)findViewById(R.id.editText3);
mTextView = (TextView)findViewById(R.id.textView1);
cButton =  (Button)findViewById(R.id.calculateButton);
    cButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //When the button is clicked, call the calucate method.
            calculate();
        }
    });

......

public void calculate(){

    Double value1 = Double.parseDouble(mEditText1.getText().toString());
    Double value2 = Double.parseDouble(mEditText2.getText().toString());
    Double value3 = Double.parseDouble(mEditText3.getText().toString());
    if((value1!=0)&&(value2!=0)) {

        if ((value1 != null) && (value2 != null) && (value3 != null)) {
            calculatedValue = (value2 * value3) / value1;
            mTextView.setText(calculatedValue.toString());}
    else {
            Toast.makeText(getApplicationContext(), "Please fill them all", Toast.LENGTH_LONG).show();
          }
 }
12-22 20:09:26.694 18523-18523/com.example.nigi.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.NumberFormatException: Invalid double: ""
    at java.lang.StringToReal.invalidReal(StringToReal.java:63)
    at java.lang.StringToReal.parseDouble(StringToReal.java:248)
    at java.lang.Double.parseDouble(Double.java:295)
    at android.view.View.performClick(View.java:4442)
    at android.view.View$PerformClick.run(View.java:18473)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5105)
    public void calculate()
{        
        if(String.valueOf(mEditText1.getText()).length() == 0)    
        mEditText1.setError("Required only alphabets");    
        else if(String.valueOf(mEditText2.getText()).length() == 0)    
        mEditText2.setError("Required only alphabets");    
        else if(String.valueOf(mEditText3.getText()).length() == 0)
            mEditText3.setError("Required only alphabets");    
        else{
        Double value1 = Double.parseDouble(String.valueOf(mEditText1.getText()));
        Double value2 = Double.parseDouble(String.valueOf(mEditText2.getText()));
        Double value3 =    Double.parseDouble(String.valueOf(mEditText3.getText()));
        calculatedValue = (value2 * value3) / value1;
        mTextView.setText(calculatedValue.toString());
       }
 }