Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.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 添加多个约束_Java_Android - Fatal编程技术网

Java 添加多个约束

Java 添加多个约束,java,android,Java,Android,我已经使用链接到firebase数据库的android studio创建了一个业务上传表单,我面临的问题是,我只能在(name=empty display“please fill all fields”)上添加一个约束,但我如何才能将该约束添加到每个其他EditText字段,因此当用户没有填充所有消息时,会显示所有消息。 这是密码 private void addBusiness(){ String name = businame.getText().toString().trim();

我已经使用链接到firebase数据库的android studio创建了一个业务上传表单,我面临的问题是,我只能在(name=empty display“please fill all fields”)上添加一个约束,但我如何才能将该约束添加到每个其他EditText字段,因此当用户没有填充所有消息时,会显示所有消息。 这是密码

private void addBusiness(){

  String  name = businame.getText().toString().trim();
  String  email = busiemail.getText().toString().trim();
  String  number = businum.getText().toString().trim();
  String  address = busiadd.getText().toString().trim();
  String  info = busiinfo.getText().toString().trim();
  String  type = spinnerType.getSelectedItem().toString();

    if (!TextUtils.isEmpty(name)) {
      String id= databaseBusiness.push().getKey();
      Business business = new Business(id, name, email, number, address, info, type);
      databaseBusiness.child(id).setValue(business);
      Toast.makeText(this,"Upload Done", Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(this,"Please Fill All Fields",Toast.LENGTH_LONG).show();
    }
}

一个简单的解决方案可能如下所示:

Map<String, String> userInputByTag = new HashMap<>();
userInputByTag.put("name", businame.getText().toString().trim());
userInputByTag.put("email", busiemail.getText().toString().trim());
...
换句话说:直截了当但丑陋的解决方案将是一系列这样的if/else if/。。。声明


除此之外,我非常确定Android对现场验证有一些框架支持。你应该在那里做些研究,而不是重新发明轮子。开始阅读或阅读

一个简单的解决方案可以如下所示:

Map<String, String> userInputByTag = new HashMap<>();
userInputByTag.put("name", businame.getText().toString().trim());
userInputByTag.put("email", busiemail.getText().toString().trim());
...
换句话说:直截了当但丑陋的解决方案将是一系列这样的if/else if/。。。声明


除此之外,我非常确定Android对现场验证有一些框架支持。你应该在那里做些研究,而不是重新发明轮子。开始阅读或阅读

方便用户:

我会为用户使用更方便的方式,在编辑文本中直接显示一个错误,如果它是空的,则在每个页面上使用
TextWatcher
EditText

如果检测到EditText为空,即在
onTextChanged()
您可以调用
editText.setError(您的字符串)

我建议使用带有包围的
TextInputLayout
appcompatitedText

但是,在提交之前,您必须再次为每个成员执行此操作

或者您有一种更为用户友好的方法,其中包含专门的错误,如:

if (TextUtils.isEmpty(name)) {

//dedicated error message
return;
}

if (TextUtils.isEmpty(email )) {
//dedicated error message 
return;
}

//and so on

(...)
//if every field holds the correct information
databaseBusiness.child(id).setValue(business);
(...)
或者你可以在一个if语句中检查每个成员,然后
像您已经看到的那样显示一般错误消息。

方便用户:

我会为用户使用更方便的方式,在编辑文本中直接显示一个错误,如果它是空的,则在每个页面上使用
TextWatcher
EditText

如果检测到EditText为空,即在
onTextChanged()
您可以调用
editText.setError(您的字符串)

我建议使用带有包围的
TextInputLayout
appcompatitedText

但是,在提交之前,您必须再次为每个成员执行此操作

或者您有一种更为用户友好的方法,其中包含专门的错误,如:

if (TextUtils.isEmpty(name)) {

//dedicated error message
return;
}

if (TextUtils.isEmpty(email )) {
//dedicated error message 
return;
}

//and so on

(...)
//if every field holds the correct information
databaseBusiness.child(id).setValue(business);
(...)
或者你可以在一个if语句中检查每个成员,然后
显示一条您已经看到的一般错误消息。

使用回答下面的
if,else if
blockcheck使用回答下面的
if,else if
blockcheck谢谢,可以。谢谢,可以。谢谢,我会在那里做一些研究。谢谢,我会在那里做一些研究。