Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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
如果表单为空,Android应用程序将关闭-需要验证表单_Android_Forms_Validation_Validating_Validating Event - Fatal编程技术网

如果表单为空,Android应用程序将关闭-需要验证表单

如果表单为空,Android应用程序将关闭-需要验证表单,android,forms,validation,validating,validating-event,Android,Forms,Validation,Validating,Validating Event,我有一个将公里/小时转换为英里/小时的应用程序。 如果表单为空并按convert按钮,应用程序将简单关闭。 我知道如果表单为空,我需要一个有效的函数,并显示一条消息,告知用户表单不能为空,但我找不到解决问题的代码 我的onClick代码是: buttonConverter.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) {

我有一个将公里/小时转换为英里/小时的应用程序。 如果表单为空并按convert按钮,应用程序将简单关闭。 我知道如果表单为空,我需要一个有效的函数,并显示一条消息,告知用户表单不能为空,但我找不到解决问题的代码

我的onClick代码是:

        buttonConverter.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            double Value1 = Double.valueOf(txtKmhUser.getText().toString());
            double Value2 = Value1 / 1.60;
            Result.setText(String.valueOf(Value2));

        }


    });

只需在转换之前进行验证

  buttonConverter.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        String str=txtQuilometros.getText().toString();
        if(str.length()>0)
        {
             double Value1 = Double.valueOf(str);
             double Value2 = Value1 / 1.60;
             Result.setText(String.valueOf(Value2));
         }

    }


});

在转换编辑文本之前,请检查其值是否为空

if(!value1.equals(null))

如果
EditText
为空,则可以显示祝酒词

    @Override
    public void onClick(View arg0) {
        String yourString = txtKmhUser.getText().toString();
        if(!yourString.equals("")){
            double Value1 = Double.valueOf(yourString);
            double Value2 = Value1 / 1.60;
            Result.setText(String.valueOf(Value2));
        }else{
            Toast.makeText(this, "Form can not be blank", Toast.LENGTH_SHORT).show();
        }
    }

应用程序崩溃的原因是Double.valueOf(“”)引发数字格式异常。因此,您需要在处理前验证表单,或者对异常使用try/catch

buttonConverter.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        if(txtQuilometros.getText().toString().length() > 0) {
             double Value1 = Double.valueOf(txtQuilometros.getText().toString());
             double Value2 = Value1 / 1.60;
             Result.setText(String.valueOf(Value2));
         } else {
          txtQuilometros.setError("Please enter a value");
    }
});

您需要检查EditText是否为空。因为“!=0.忘记了知道的零钱,但忘记了。。。这改变了。。感谢提醒,请引用作者的话:“显示一条消息,告知用户表单不能为空”非常感谢Adam W。我理解“如果”逻辑和错误,在您的帮助下,我的应用程序在这种情况下关闭,请再试一次。表单中会出现一个警报,应用程序只需关闭即可停止。稍后,我在Marcus的帮助下混合使用setError命令,并使用Toast消息。应用程序变得完美!对不起,我的英语不好。你应该接受其中一个答案。编码快乐。非常感谢你,马库斯。我将您的toast方法与Adam W answer混合使用,为用户提供了两个提醒。事实上,一个简短的警报和一个表单焦点。对不起,我的英语不好