2013-05-31 48 views
0

对于android中的登录页面,我使用php webservice连接到服务器数据库。我将来自php服务的响应存储在一个字符串中。答案应该是成功或失败。但有时候它既不会成功也不会失败。所以当时它显示空指针异常。我尝试如下,但它是表示行空指针异常如何检查一个字符串是否在android中返回null值?

如果(!response.equals(空)& & response.equals( “SUCCESS”))

时响应是空的。我该如何解决这个问题。在这方面请帮助我。

if (!response.equals(null) && response.equals("SUCCESS")) { 
     Intent howis = new Intent(Login.this, Homepage.class); 
     startActivity(in); 
} 
else if (response.equals("FAILED")) { 
     new AlertDialog.Builder(Login1.this) 
       .setMessage(
         "Sorry!! Incorrect Username or Password") 
       .setCancelable(false).setPositiveButton("OK", null) 
       .show(); 
     password.setText(""); 
     username.requestFocus(); 
} else if (response.equals(null)) { 
     new AlertDialog.Builder(Login1.this) 
      .setMessage("Invalid email or password") 
      .setCancelable(false).setPositiveButton("OK", null) 
      .show(); 
     password.setText(""); 
     username.requestFocus(); 
} else { 
     new AlertDialog.Builder(Login1.this) 
      .setMessage("Please Try Again..") 
      .setCancelable(false).setPositiveButton("OK", null) 
      .show(); 
     password.setText(""); 
     username.requestFocus(); 
} 
+0

(response == null || response ==“”) –

+0

将其更改为if(response!= null)&& response.equals(“SUCCESS”)) –

回答

2

如果你正在检查一个(与它无关)字符串,则条件应该是:

if (response == null) { 

} else if (response != null) { 

} 

如果你检查空的String(该字符串的值为null),则条件应为:

if (response.equals("null")) { 

} else { 

} 
0

您还可以使用

if(TextUtils.isEmpty(response)) 
{ 
// response is either null or empty 
} 

从文档:

public static boolean isEmpty (CharSequence str) 
Returns true if the string is null or 0-length. 
0

您可以简单地使用..

if (!response.equals("") && response.equals("SUCCESS")) 
{ 
... 
} 
1

不能使用像equals()字符串的方法时,它是null 。您应该首先检查nullresponse == null)。 我会建议做

if (response == null) { 
    //null 
} else if (response.equals("SUCCESS")) { 
    //success 
} else if (response.equals("FAILED")) { 
    //failed 
} else { 
    //neither of those 
} 

if (!response == null && response.equals("SUCCESS")) { 
    //success 
} else if (!response == null && response.equals("FAILED")) { 
    //failed 
} else if (response == null) { 
    //null 
} else { 
    //neither of those 
} 

第一种方式是短,更简洁,第二个有顺序为你的代码,有什么可以为理解代码更好。

0

另一种可能的解决方法(对我的作品)是为了避免由布局XML中设置的默认值的空指针异常:

的android:文本=“SomeText”则会

也就是说,如果你的卡:-)

相关问题