我要显示的祝酒消息是“在所有字段中都填写!”当用户不会写东西时,他们单击“保存”按钮。
代码中没有错误,但是当我运行它时,它将完全忽略我的else条件,并将继续将空项目添加到我的列表中。
我已经读过某处以放入break
,但仍然无法正常工作。
这是我的MainActivity.java的代码段
case R.id.btnsave:
if(!studLname.equals("") || !studFname.equals("") || !cboCourse.getSelectedItem().equals(0)){
String lname = studLname.getText().toString();
String fname = studFname.getText().toString();
String course = cboCourse.getSelectedItem().toString();
student.setLname(lname);
student.setFname(fname);
student.setCourse(course);
Student.studentArrayList.add(student); //Global arraylist
Log.d("test", "students:" + Student.studentArrayList);
listView.setAdapter(studentAdapter);
Toast.makeText(getApplicationContext(), "Item successfully added!", Toast.LENGTH_SHORT).show();
Intent home = new Intent(AddStudentActivity.this, MainActivity.class);
startActivity(home);
studentAdapter.notifyDataSetChanged();
break;
}else{
Toast.makeText(getApplicationContext(), "Fields can not be empty!", Toast.LENGTH_SHORT).show();
break;
}
答案 0 :(得分:2)
尝试此条件语句
if(!studLname.getText().toString().equals("") && !studFname.getText().toString().equals("") && !cboCourse.getSelectedItem().equals(0))
您需要先从Edittext中获取Text,然后再进行检查。
答案 1 :(得分:2)
尝试一下。也会删除空格
if(!studLnamegetText().toString().trim().equals("") || !studFnamegetText().toString().trim().equals("") || !cboCourse.getSelectedItem()getText().toString().trim().equals(0)){
答案 2 :(得分:1)
您的条件是否不正确。应该是&&
而不是||
。
if(!studLname.equals("") && !studFname.equals("") && !cboCourse.getSelectedItem().equals(0)){
答案 3 :(得分:1)
在if语句中使用“&”(AND)代替“ ||”(OR)。 截至目前,当任一条件为true时,这意味着仅填充一个字段,而其他两个为空,那么它还将输入if条件,并对NON-FILLED字段取空值。
答案 4 :(得分:1)
正确的答案是其他所有人的综合答案。 您的“或”比较将触发内部检查(如果您未真正正确地阅读)是否已填写了单个框。您需要添加getText()。toString()并更改||到&&。
答案 5 :(得分:1)
您的代码有两个问题,
一个:您必须从edittext中获取文本,然后检查它是否为空
两个:您必须使用&&
而不是||
,因为如果在单个字段为非空时使用||
,则条件为true。因此,为了确保所有三个值都不为空,请使用&&
运算符
按以下说明更改代码,
case R.id.btnsave:
String lname = studLname.getText().toString();
String fname = studFname.getText().toString();
String course = cboCourse.getSelectedItem().toString();
if(!TextUtils.isEmpty(lname)
&& !TextUtils.isEmpty(fname)
&& !TextUtils.isEmpty(course)){
student.setLname(lname);
student.setFname(fname);
student.setCourse(course);
Student.studentArrayList.add(student); //Global arraylist
Log.d("test", "students:" + Student.studentArrayList);
listView.setAdapter(studentAdapter);
Toast.makeText(getApplicationContext(), "Item successfully added!", Toast.LENGTH_SHORT).show();
Intent home = new Intent(AddStudentActivity.this, MainActivity.class);
startActivity(home);
studentAdapter.notifyDataSetChanged();
break;
} else {
Toast.makeText(getApplicationContext(), "Fields can not be empty!", Toast.LENGTH_SHORT).show();
break;
}