-->

检查是否EditText.isEmpty()不工作(Checking if EditText.isE

2019-10-21 14:29发布

在我的代码,我要检查,如果密码字段is empty 。 我使用isEmpty()方法来完成它,但它不工作。 离开password领域的空白,将恢复为第二否则-if语句,而不是第三。

public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final EditText password = (EditText) findViewById(R.id.editText_Password);
    Button enter = (Button) findViewById(R.id.button);

    enter.setOnClickListener(new OnClickListener() {



        @Override
        public void onClick(View arg0) {

            String user_pass;
            user_pass = password.getText().toString();

                if (user_pass.equals("123")) {
                    Toast.makeText(MainActivity.this, "Welcome!", Toast.LENGTH_SHORT).show();
                    Intent I = new Intent("com.mavenmaverick.password.OKActivity");
                    startActivity(I);
                }

                else

                    if(user_pass != "123"){
                    Toast.makeText(MainActivity.this, "Incorrect", Toast.LENGTH_SHORT).show();
                    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MainActivity.this);
                        dialogBuilder.setIcon(R.drawable.ic_launcher);
                        dialogBuilder.setTitle("Oops!");
                        dialogBuilder.setMessage("Incorrect Password");
                        dialogBuilder.setPositiveButton("OK", null);
                        dialogBuilder.show();
                    }

                else
                    if (user_pass.isEmpty()) {
                        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MainActivity.this);
                            dialogBuilder.setIcon(R.drawable.ic_launcher);
                            dialogBuilder.setTitle("Oops!");
                            dialogBuilder.setMessage("Password Field Cannot Be Empty");
                            dialogBuilder.setPositiveButton("OK", null);
                            dialogBuilder.show();
                        }

        }
    });




}

Answer 1:

你的第二个,如果检查user_pass != "123" 。 从逻辑上讲,如果user_pass为空,它不是"123" ,它甚至不会去的第三个如果。 如果你想要的工作,你切换第二和第三个如果。



Answer 2:

if (string == "aString") {
    ...
} else if (string != "somestring") {
    ...
} else if (string.isEmpty()) {
    ...
}

这不会检查字符串是空的,它会二号停止,如果因为它布洛克的不相等。

为了避免这种情况,检查它是否是空的第一次。 也不要使用==比较字符串值时:

if (user_pass.isEmpty()) {
    // It's empty
} else if (user_pass.equals("123")) {
    // Equals
} else if (!user_pass.equals("123")){
    // Not equals
}


Answer 3:

与运营商的错误字符串比较。 对于字符串比较,你可以使用.equals()方法。

通过对你的情况的方式,

只是使用,

if (user_pass.isEmpty()) {
      displayAlertDialog("Password Field Cannot Be Empty");
}else if(user_pass.equals("123"))
{
 Toast.makeText(MainActivity.this, "Welcome!", Toast.LENGTH_SHORT).show();
 Intent I = new Intent("com.mavenmaverick.password.OKActivity");
 startActivity(I);

}else
{
Toast.makeText(MainActivity.this, "Incorrect", Toast.LENGTH_SHORT).show();
    displayAlertDialog("Incorrect Password");               
}

private void displayAlertDialog(String message)
{
 AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MainActivity.this);
                            dialogBuilder.setIcon(R.drawable.ic_launcher);
                            dialogBuilder.setTitle("Oops!");
                            dialogBuilder.setMessage(message);
                            dialogBuilder.setPositiveButton("OK", null);
                            dialogBuilder.show();
}


Answer 4:

如果(user_pass!= “123”){

您是直接检查memoy位置 ,这始终是假的

如果使用(!user_pass.equals( “123”)){代替。



文章来源: Checking if EditText.isEmpty() not working