2016-11-01 5 views
0

Ich verwende Parse in Android. Ich versuche zu überprüfen, ob ein Array einen Wert (ObjectId) enthält.Überprüfen, ob Parse-Array Wert enthalten Android

private void getCurrentObject() { 
    query = ParseQuery.getQuery("Group"); 
    query.getInBackground(objectid, new GetCallback<ParseObject>() { 
     public void done(ParseObject object, ParseException e) { 
      object = all; 
      if (e == null) { 
       if (userexists(object.getJSONArray("members_array"), currentUser.getObjectId())) { 
        Toast.makeText(GroupActivity.this, "isDo", Toast.LENGTH_SHORT).show(); 
       } else { 
        Toast.makeText(GroupActivity.this, "isNot", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     } 
    }); 
} 

private boolean userexists(JSONArray jsonArray, String usernameToFind) { 
    return jsonArray.toString().contains(usernameToFind); 

} 

Während die App laufen bekam ich diesen Fehler

"java.lang.NullPointerException: Attempt to invoke virtual method 'org.json.JSONArray com.parse.ParseObject.getJSONArray(java.lang.String)' on a null object reference

+0

Welche Schwierigkeit haben Sie? – Real73

+0

Ich bekomme "java.lang.NullPointerException: Versuch, virtuelle Methode aufzurufen" org.json.JSONArray com.parse.ParseObject.getJSONArray (java.lang.String) 'auf eine Null-Objekt-Referenz "wenn ich den obigen Code verwenden. – Loyal

Antwort

0

Entfernen Sie diese Zeile

object = all; 

Oder Sie wahrscheinlich gemeint all = object

Dann müssen Sie über das JSONArray, nicht toString es Schleife.

private boolean userexists(JSONArray jsonArray, String usernameToFind) { 
    if (jsonArray == null) return false; 

    for (int i = 0; i < jsonArray.length(); i++) { 
     String s = jsonArray.optString(i, ""); 
     if (s.equals(usernameToFind)) return true; 
    } 

    return false; 
} 

Mit dieser Methode

String optString(int index, String fallback)
Gibt den Wert bei Index, wenn es vorhanden ist, ist es bei Bedarf Nötigung.

Verwandte Themen