如何在android中为每个EditText设置单独的验证



我的android项目中有3个EditText视图。我已经为所有EditText设置了验证,当其中任何一个为空时,它们都会显示Toast。我想要的是,为每个EditText设置不同的吐司。例如,如果第一个EditText为空,它应该说第一个是空的,依此类推

这是我的代码:

if(firstValue.getText().toString().isEmpty() | secondValue.getText().toString().isEmpty() | thirdValue.getText().toString().isEmpty()) {
Toast.makeText(mainactivity.this, "Please enter all fields!", Toast.LENGTH_SHORT).show();
}

我想这是个好办法。试试这个

if(firstValue.getText().toString().isEmpty()){
setToast("firstValue message");
return;
}
if(secondValue.getText().toString().isEmpty()){
setToast("secondValue message");
return;
}
if(thirdValue.getText().toString().isEmpty()){
setToast("thirdValue message");
return;
}

创建方法

public void setToast(String msg){
Toast.makeText(activity.this,msg,Toast.LENGTH_SHORT).show();
}

没有其他方法,只能检查每个EditText。你可以用很多不同的方式来实现它,但最简单的是:

if(firstValue.getText().toString().isEmpty()) {
Toast.makeText(mainactivity.this, "Please enter value into the first field!", Toast.LENGTH_SHORT).show();
return;
}
if(secondValue.getText().toString().isEmpty()) {
Toast.makeText(mainactivity.this, "Please enter value into the second field!", Toast.LENGTH_SHORT).show();
return;
}
if(thirdValue.getText().toString().isEmpty()) {
Toast.makeText(mainactivity.this, "Please enter value into the third field!", Toast.LENGTH_SHORT).show();
return;
}

注意:如果要停止对输入的进一步验证,则需要使用return;。否则,请删除return;并使用else if语句。

使用edittext参数简单生成函数示例:

void validateEditText(EditText editText){
if (editText.getText().toString().isEmpty()){
if (editText==firstValue){
Toast.makeText(mainactivity.this, "First Empty!", Toast.LENGTH_SHORT).show();
}else if (editText==secondValue){
Toast.makeText(mainactivity.this, "Second Empty!", Toast.LENGTH_SHORT).show();
}
}
}

我个人喜欢在引发错误的同一个edittext中出现一个图标:

if(firstValue.getText().toString().isEmpty()) {
firstValue.setError("Please enter value into the first field!");
return;
}
if(secondValue.getText().toString().isEmpty()) {
secondValue.setError("Please enter value into the second field!");
return;
}
if(thirdValue.getText().toString().isEmpty()) {
thirdValue.setError("Please enter value into the third field!");
return;
}

或者setError((与Toast的组合。

您可以传递EditText列表,并显示toast,如果其中任何一个为空,则返回false。

Boolean validateEditTexts(List<EditText> editTexts) {
for(EditText editText: editTexts) {
if(editText.getText().toString().isEmpty()) {
String name = editText.getResources().getResourceEntryName(editText.getId());
Toast.makeText(this, name + "is empty!", Toast.LENGTH_LONG);
return false;
}
}
return true;
}

您可以通过调用以上功能

Boolean allNotEmpty = validateEditTexts(new List<EditText>(view.findViewById(R.id.tvOne), view.findViewById(R.id.tvTwo)))

相关内容

  • 没有找到相关文章

最新更新