2016-11-01 3 views
0

Я использую Parse in android. Я пытаюсь проверить, содержит ли массив значение (ObjectId).Проверьте, содержит ли Parse Array значение 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); 

} 

Хотя запустить приложение я получил эту ошибку

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

+0

с какой трудностью вы сталкиваетесь? – Real73

+0

i get "java.lang.NullPointerException: попытка вызвать виртуальный метод 'org.json.JSONArray com.parse.ParseObject.getJSONArray (java.lang.String)' для ссылки на нулевой объект", если я использую приведенный выше код. – Loyal

ответ

0

Удалить эту строку

object = all; 

Или, вы, вероятно, означало all = object

Затем вам нужно перевернуть JSONArray, а не toString.

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

Используя этот метод

String optString(int index, String fallback)
Возвращает значение индекса в , если он существует, принуждая его в случае необходимости.