if / else执行

时间:2017-03-04 17:00:20

标签: java android

我想建立一个系统,如果EditText为空,则打印一条消息错误,当它是' nt时,然后更改为主活动,并打印成功消息。但当我按下" sig"按钮,应用程序停止工作错误消息出现!我需要帮助!这是我的代码:

Button sig = (Button) findViewById(R.id.env); // cargo el boton
    sig.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Context context = getApplicationContext();
            int duration = Toast.LENGTH_SHORT;
            EditText nom = (EditText) findViewById(R.id.nomb);
            String strUserName = nom.getText().toString();
            if(TextUtils.isEmpty(strUserName))
            {
                CharSequence text2 = "¡Dejaste campos vacíos!";
                Toast error = Toast.makeText(context, text2, duration);
                error.show();
            }
            else
            {
                CharSequence text = "¡Encuesta enviada!";
                Toast toast = Toast.makeText(context, text, duration);
                Intent pas = new Intent(encuesta.this, MainActivity.class);
                toast.show();
                startActivity(pas);
            }
        }

    });

谢谢!

5 个答案:

答案 0 :(得分:2)

我认为问题在于上下文,所以不要使用getApplicationContext(),而是尝试在toast方法中使用class name.this。

答案 1 :(得分:1)

而不是那条线

 if(TextUtils.isEmpty(strUserName))

您可以使用

 if(nom .isEmpty())

我希望这会有所帮助。

答案 2 :(得分:0)

isEmpty()或null始终无法正常使用String。 我建议以这种方式找到空的编辑文本

if(editText.getText().toString().length() > 0){
//it contains something
} 

然后您可以在此处或在xml布局中指定长度限制。

答案 3 :(得分:0)

谢谢你的时间。我是如此虚拟,这是一个非常虚拟的错误。这里:EditText nom = (EditText) findViewById(R.id.nomb);" nomb"是一个TextView ID,而不是EditText id,所以我使用" editText3",它是我尝试使用的EditText id,它有效。我道歉并感谢你的时间。

答案 4 :(得分:-1)

我现在不知道TextUtils类的验证方式或检查方式,但你可以用这样的东西替换它

if(strUserName.matches(""))
            {
            }

这样你可以检查字符串是否为空