如果条件不起作用

时间:2017-04-20 11:06:38

标签: java android

我试图制作IF condition,但效果不佳。我希望当EditTextnull时,用户不会转到下一个活动。

当它被填满后,按下按钮后会进入下一个活动。

Name = is my EditText assignment 

one_next_diaspora_bt = is the Button.

以下是我的代码:

final String Name = name_diaspora_edt.getText().toString();
one_next_diaspora_bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(Name.matches("")){

                    Toast.makeText(getApplicationContext(),"Make sure that you have filled your name please !!!",Toast.LENGTH_LONG).show();

                }

                else {

                    Intent i = new Intent(Diaspora.this,DiasporaTwo.class);
                    i.putExtra("Name",Name);
                    i.putExtra("Age",Age);
                    i.putExtra("Gender",Gender);
                    i.putExtra("MaritalStatus",MaritalStatus);
                    startActivity(i);
                }
            }
        });

9 个答案:

答案 0 :(得分:2)

使用:

if (Name.getText() != null && Name.getText().toString().trim().equals(""))

遵循Java命名约定。变量名应以小写字符

开头

答案 1 :(得分:2)

将您的状况改为:

 if(edt.getText().toString().isEmpty()){
  }

if (edt.getText().trim().equals("")){
}

答案 2 :(得分:2)

试试这个:

if (Name != null && Name.equalIgnoreCase("null") && Name.trim().equalIgnoreCase("")){

}else
{
}

答案 3 :(得分:1)

尝试TextUtils.isEmpty,它会检查null并为空。 TextUtils是包android.text

中的内置类
 if(android.text.TextUtils.isEmpty(Name)) {

答案 4 :(得分:1)

首先我想说,你真的应该遵循命名惯例。 但您需要抓住String内的EditText并将其与.equals进行比较,如下所示:

if(name.getText().toString().equals("")){
    //do something
}

答案 5 :(得分:1)

if (TextUtils.isEmpty(Name)){  
                    Toast.makeText(getApplicationContext(),"Make sure that you have filled your name please !!!",Toast.LENGTH_LONG).show();
                }

使用android默认验证,TextUtils类

答案 6 :(得分:1)

使用此:

one_next_diaspora_bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                final String Name = name_diaspora_edt.getText().toString().trim();
                if(Name.matches("")){


                    Toast.makeText(getApplicationContext(),"Make sure that you have filled your name please !!!",Toast.LENGTH_LONG).show();


                }

                else{



                    Intent i = new Intent(Diaspora.this,DiasporaTwo.class);
                    i.putExtra("Name",Name);
                    i.putExtra("Age",Age);
                    i.putExtra("Gender",Gender);
                    i.putExtra("MaritalStatus",MaritalStatus);
                    startActivity(i);
                }
            }
        });
}

答案 7 :(得分:1)

使用TextUtils.isEmpty(Name)代替Name.matches("")

TextUtils.isEmpty(CharSequence str) >> Returns true if the string is null or 0-length. 

试试这个:

final String Name = name_diaspora_edt.getText().toString();
one_next_diaspora_bt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(TextUtils.isEmpty(Name)) {

                Toast.makeText(getApplicationContext(),"Make sure that you have filled your name please !!!",Toast.LENGTH_LONG).show();
            } else {

                Intent i = new Intent(Diaspora.this, DiasporaTwo.class);
                i.putExtra("Name", Name);
                i.putExtra("Age", Age);
                i.putExtra("Gender", Gender);
                i.putExtra("MaritalStatus", MaritalStatus);
                startActivity(i);
            }
        }
    });

希望这会有所帮助〜

答案 8 :(得分:0)

您可以使用此方法直接检查EditText,equals()适用于字符串。

试试这个

String data = Name.getText().toString();

然后

if(data.isEmpty()){
}