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

Posted

技术标签:

【中文标题】如果表单空白,Android 应用程序将关闭 - 需要验证表单【英文标题】:Android app shutting if form blank - Need a validation form 【发布时间】:2015-02-05 19:34:24 【问题描述】:

我有一个应用程序可以将 km/h 转换为 mph。 如果表单为空白并按下按钮转换,则应用程序将关闭。 我知道如果表单为空白,我需要一个验证功能,并显示一条消息,通知用户表单不能为空白,但我找不到我的问题的代码。

我的 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));

        


    );

【问题讨论】:

需要检查EditText是否为空。因为 "" != 0. 【参考方案1】:

如果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();
        
    

【讨论】:

非常感谢马库斯。我将您的吐司方法与 Adam W 的答案混合使用,我收到了 2 个用户警报。事实上,一个简短的警报和一个表单焦点。对不起我的英语不好【参考方案2】:

您的应用崩溃的原因是 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");
    
);

【讨论】:

非常感谢 Adam W。我理解“如果”逻辑和错误,在这种情况下,在您的帮助下,我的应用程序会关闭,并尝试一次。表单中会出现一条警报,应用程序会停止关闭。后来我在 Marcus 的帮助下混合了你的 setError 命令,并使用了 Toast 消息。该应用程序变得完美!对不起我的英语不好 您应该接受其中一个答案。编码愉快。【参考方案3】:

只需在转换前进行验证

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

    


);

【讨论】:

忘记了知道的更改但忘记了...更改了...谢谢提醒 引用作者的话:“显示消息通知用户表单不能为空”【参考方案4】:

在转换之前检查您的编辑文本是否具有 null 值

if(!value1.equals(null))

【讨论】:

以上是关于如果表单空白,Android 应用程序将关闭 - 需要验证表单的主要内容,如果未能解决你的问题,请参考以下文章

如何将我在表单上填写的信息从一个活动保存到另一个活动并在我的 Android 程序中显示多次尝试? [关闭]

PHP 表单用post传值不了 跳转出现空白页。。

VBA 防止用户输入表单中出现空字段

Android 点击空白或滑动时候关闭软键盘(有scrollview的坑)

为什么Android应用程序在退出带有后退按钮的应用程序时显示空白屏幕React Native Navigation?

Javascript检查年龄[关闭]