验证保存按钮

Posted

技术标签:

【中文标题】验证保存按钮【英文标题】:Validation for save button 【发布时间】:2015-09-14 03:08:37 【问题描述】:

在将验证保存到sqlite 之前,我很难创建验证,下面是代码:

public void save(View v)
    String weight = weightinputid.getText().toString();
    String bmi = BMIfinal.getText().toString();
    String status = BMIStatus.getText().toString();


    long id = data.insertData(weight, bmi, status);

    if(id<0)
        message.mess(this, "Error");
    
    else
        message.mess(this, "BMI has been saved");
    

如果所有文本字段都为空,我如何创建验证?我现在的问题,即使我按下保存按钮,空文本字段也保存在数据库中

【问题讨论】:

【参考方案1】:

你可以试试这个,检查EditText中是否没有输入值。

if (weight .equals(""))

   Toast.makeText(getApplicationContext(),"Please enter Value1", Toast.LENGTH_LONG).show();

if (bmi.equals(""))

   Toast.makeText(getApplicationContext(),"Please enter Value2", Toast.LENGTH_LONG).show();

if (status.equals(""))

   Toast.makeText(getApplicationContext(),"Please enter Value3", Toast.LENGTH_LONG).show();

或者,您可以使用 .matches("") 代替 .equals("")

更新

正如@Rajesh 在他的 cmets 中提到的,您也可以使用

TextUtils.isEmpty(weightinputid.getText())

实现相同的功能。

【讨论】:

你也可以使用 weight.isEmpty() 代替 weight.equals()。 @RajeshJadav 那么应该是TextUtils.isEmpty(weightinputid.getText())【参考方案2】:

您绝对可以执行@Lal 建议,但如果 N 个字段为空,它将显示 N 个 toast,这不是很有用:

我建议执行以下选项之一:

a) 实现MaterialEditText: 在此处查看详细信息: https://github.com/rengwuxian/MaterialEditText

<com.rengwuxian.materialedittext.MaterialEditText
        android:layout_
        android:layout_
        android:hint="Min Characters"
        app:met_minCharacters="1" />

b) 使用 TextWatcher 并仅在您拥有带有值的必填字段后启用 SaveButton: http://developer.android.com/reference/android/text/TextWatcher.html 您可以通过以下问题了解如何操作: Disable Button when Edit Text Fields empty

【讨论】:

以上是关于验证保存按钮的主要内容,如果未能解决你的问题,请参考以下文章

数据库保存按钮上的 asp.net 验证

Acumatica:触发器在另一个自定义按钮上保存验证

如何删除进度条的验证以保存功能

是否可以制作保存按钮(不另存为按钮)以将文档保存在特定路径中?

检测 WPF 验证错误

Childbrowser 在主页按钮上保存网址