Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在检查EditText.isEmpty()是否不工作_Java_Android_Android Edittext_Is Empty - Fatal编程技术网

Java 正在检查EditText.isEmpty()是否不工作

Java 正在检查EditText.isEmpty()是否不工作,java,android,android-edittext,is-empty,Java,Android,Android Edittext,Is Empty,在我的代码中,我想检查密码字段是否为空。我正在使用isEmpty()方法来完成它,但它不起作用。将密码字段留空,将返回第二条else if语句,而不是第三条 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.

在我的代码中,我想检查密码字段
是否为空。我正在使用
isEmpty()
方法来完成它,但它不起作用。将
密码
字段留空,将返回第二条else 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();
                        }

        }
    });




}

您的第二个if检查
user\u pass!=“123”
。从逻辑上讲,如果
用户通行证
为空,它就不是
“123”
,甚至第三个if也不会出现。如果你想让它工作,请切换第二个和第三个

if (string == "aString") {
    ...
} else if (string != "somestring") {
    ...
} else if (string.isEmpty()) {
    ...
}
这不会检查字符串是否为空,它将在第二个if块停止,因为它不相等

要避免这种情况,请先检查它是否为空。另外,在比较字符串值时,不要使用
=

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

与运算符的字符串比较错误。对于字符串比较,可以使用
.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();
}
如果(用户通过!=“123”){

您直接检查的是记忆位置,该位置始终为

如果(!user\u pass.equals(“123”){而不是。

user\u pass!=“123”
不正确,则使用。它必须是
!user\u pass.equals(“123”)