无法在Android程序中解决条件语句

时间:2015-09-30 22:38:49

标签: java android

我不知道if语句中的问题是什么。即使我输入了正确的用户名和密码,它每次都会在CAT中显示抱歉。我不得不删除整个程序并开始编写小的演示代码。请问,任何人都可以查看if声明中的错误吗?

  @Override
    public void onClick(View v) {
        switch (v.getId()){

            case R.id.submitButton:
                if (!(edtvUsername.equals(" ") && (edtvPassword.equals(" ")))) {
                   /* Toast toast =  Toast.makeText(LoginActivity.this, "Hi, Forgot username/password", Toast.LENGTH_SHORT);
                    toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL,0,0 );
                    toast.show();
                    relativeLayout.setBackgroundColor(getResources().getColor(R.color.red));*/
                    Log.i("TAG","Sorry");
                 }
                else if(edtvUsername.getText().equals("aa") && edtvPassword.getText().equals("aa")) {
        /*                toast = Toast.makeText(LoginActivity.this, "Successfully entered username/password", Toast.LENGTH_SHORT);
                        toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL,0,0 );
                        toast.show();
                        relativeLayout.setBackgroundColor(getResources().getColor(R.color.green));*/
                    Log.i("TAG","OK");
                    }
                else{ Log.i("TAG","...................");}
                break;

            case R.id.clearButton:
                Toast toast =  Toast.makeText(LoginActivity.this, "Forgot username/password", Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL,0,0 );
                toast.show();
                relativeLayout.setBackgroundColor(getResources().getColor(R.color.queenBlue));
        }


    }

    private void toastDef() {

    }

4 个答案:

答案 0 :(得分:1)

更改此

 if (!(edtvUsername.getText().equals(" ") && (edtvPassword.getText().equals(" ")))) 

 if(edtvUsername.getText().equals(" ") || edtvPassword.getText().equals(" ")){ 
 Log.i("TAG","Sorry"); 
} 
    else{
    ...
    }

同样在你的if条件中,条件返回true,false& false = false和!false表示你应该使用

public class MyWindow : Window
{
    public const string WindowTitle = "This seems like overkill!";

    public MyWindow() : base()
    {
        this.Title = WindowTitle;
    }
}

答案 1 :(得分:0)

下面:

if (!(edtvUsername.equals(" ")

您正在将对象 EditText与字符串进行比较 它将从不相等。

下面:

else if(edtvUsername.getText().equals("aa")

您正确地将文本与字符串进行比较。

答案 2 :(得分:0)

edtvUsernameedtvPassword中有值时,由于您正在检查if (!),这将被执行..逻辑错误  删除not condition

if((edtvUsername.equals("")&&(edtvPassword.equals(""))))

答案 3 :(得分:0)

当任何一个字段为空时,你希望它说“SORRY”,而不是使用&&你可以使用||没有否定。

试试这个

if (edtvUsername.getText().toString().isEmpty() || edtvPassword.getText().toString().isEmpty()) {