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