Android Studio If语句带||和&&操作者

时间:2017-04-08 12:36:28

标签: java android if-statement is-empty

我正在创建一个应用程序,可以实时或作为最终结果更新用户的足球比赛得分。必须输入至少一个分数才能更新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语句。我使用的是正确的格式还是有更好的方法来完成这些检查?

谢谢!

1 个答案:

答案 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());
        }
    }

我不确定这是否完全正确,因为我的要求并不完全清楚,但它至少应该是一个良好的开端来跟踪正在发生的事情。