【发布时间】:2015-04-09 03:24:19
【问题描述】:
如何在 switch 而不是 if 中检查以下条件?
我想在 switch case 中检查这个条件。
if(tvStartLocation.getText().toString().equalsIgnoreCase(""))
{
Toast.makeText(getActivity(),"Please enter start location", Toast.LENGTH_SHORT).show();
}
else if(tvEndLocation.getText().toString().equalsIgnoreCase(""))
{
Toast.makeText(getActivity(),"Please enter end location", Toast.LENGTH_SHORT).show();
}
else if(etStartOdometer.getText().toString().equalsIgnoreCase(""))
{
Toast.makeText(getActivity(),"Please enter Trip Start Odometer reading", Toast.LENGTH_SHORT).show();
}
else if(etEndOdometer.getText().toString().equalsIgnoreCase(""))
{
Toast.makeText(getActivity(),"Please enter Trip End Odometer reading", Toast.LENGTH_SHORT).show();
}
else if((compareOdometerReading(etStartOdometer.getText().toString(),etEndOdometer.getText().toString())) == -1)
{
Toast.makeText(getActivity(),"End Odometer reading should be greater than Start Odometer Reading (eOR > sOR)!", Toast.LENGTH_SHORT).show();
}
else if(etManifest.getText().toString().equalsIgnoreCase(""))
{
Toast.makeText(getActivity(),"Please enter Manifest", Toast.LENGTH_SHORT).show();
}
else if(etShipper.getText().toString().equalsIgnoreCase(""))
{
Toast.makeText(getActivity(),"Please enter Shipper", Toast.LENGTH_SHORT).show();
}
else if(etCommodity.getText().toString().equalsIgnoreCase(""))
{
Toast.makeText(getActivity(),"Please enter Commodity", Toast.LENGTH_SHORT).show();
}
提前向我推荐伙计
【问题讨论】:
-
你不能。您正在将一堆不同的变量与一个常数进行比较。开关用于将一个变量与一堆常量进行比较。但是,您可以将
if条件简化为...getText().isEmpty(),假设getText()无论如何都会返回String。 -
你需要 Java 1.7!您的用例仍然不允许使用相同的用例!为了减少你的 if else 链,我建议你通过this
-
你不是在比较同一个字符串。