我正在创建一个应用程序,可以实时或作为最终结果更新用户的足球比赛得分。必须输入至少一个分数才能更新TextView
并显示相关分数。我正在使用以下代码检查一对EditText
字段中至少有一个是否为空:
if(!(et_current.getText().toString().isEmpty())||(!(et_final.getText().toString().isEmpty()))
&& (!(et_current2.getText().toString().isEmpty())||(!(et_final2.getText().toString().isEmpty()))){
if(!(et_final.getText().toString().isEmpty()))
tv_final.setText(et_final.getText().toString());
else
tv_current.setText(et_current.getText().toString());
if(!(et_final2.getText().toString().isEmpty()))
tv_final2.setText(et_final2.getText().toString());
else
tv_current2.setText(et_current2.getText().toString());
}
我希望能够设置正确的TextView
,所以我在原始if语句中有另一个if语句,以确保正在更新正确的分数。
当我运行代码时,我似乎没有超过第一个if语句。我使用的是正确的格式还是有更好的方法来完成这些检查?
谢谢!
答案 0 :(得分:3)
为了便于阅读,请获取一些变量
boolean currentEmpty = et_current.getText().toString().isEmpty();
boolean current2Empty = et_current2.getText().toString().isEmpty();
boolean finalEmpty = et_final.getText().toString().isEmpty();
boolean final2Empty = et_final2.getText().toString().isEmpty();
然后你的代码可以更清洁。像
这样的东西 if( (!currentEmpty || !finalEmpty) || (!current2Empty || !final2Empty)) {
if(finalEmpty) {
tv_current.setText(et_current.getText());
}
else {
tv_final.setText(et_final.getText());
}
if(final2Empty) {
tv_current2.setText(et_current2.getText());
}
else {
tv_final2.setText(et_final2.getText());
}
}
我不确定这是否完全正确,因为我的要求并不完全清楚,但它至少应该是一个良好的开端来跟踪正在发生的事情。