2017-03-04 79 views
1

我想制作一个系统,如果EditText为空,然后打印一条消息错误,并且当它不是时,则切换到主要活动并打印成功消息。但是,当我按下“签名”按钮,应用程序停止工作的错误信息出现!我需要帮助!这里是我的代码:当if/else执行时应用程序停止

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); 
      } 
     } 

    }); 

谢谢!

+2

“出现错误信息” - 那么错误信息是什么?日志中是否有例外情况? (这听起来可能是......) –

+0

'if(strUserName == null){'**把你的东西当作空值**'} else {'** stuff for non-null **'}' –

回答

-1

我现在不什么文本实用程序类的验证办法或检查的方式,但你可以用这样的

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

代替这种方式,你可以检查,如果字符串为空或不

+0

它没有'工作! –

2

我觉得问题与上下文有关,所以不要使用getApplicationContext()尝试在你的toast方法中使用class name.this。

+0

什么是类名? –

+0

如果你的类名是MainActivity,那么使用MainActivity.this就像下面的Toast.makeText(MainActivity.this,text2,duration); –

1

而不是线

if(TextUtils.isEmpty(strUserName)) 

您可以使用

if(nom .isEmpty()) 

我希望这将有助于。

+1

我做到了,但“isEmpty”以红色出现,idk为什么!它说“不能解决方法isEmpty()” –

+0

或者你可以使用,如果你有问题isEmoty() String strUserName = nom.getText()。toString()。trim();如果(strUserName .length()== 0){ CharSequence text2 =“Dejaste camposvacíos!”; Toast.makeText(context,text2,duration); Toast.makeText(context,text2,duration); error.show(); }其他 做别的东西 –

0

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

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

,那么你可以在这里或在XML布局指定例如长度限制。

+0

它不工作:( –

+0

确定粘贴错误日志有可能另一个问题。 –

+0

没有错误日志,只是停在手机的应用程序。 –

0

感谢您的时间。我很虚伪,这是一个非常虚拟的错误。在这里:EditText nom = (EditText) findViewById(R.id.nomb);“nomb”是一个TextView ID,而不是EditText ID,所以我使用了“editText3”,它是我尝试使用的EditText ID,它工作正常。我道歉并感谢你的时间。