2016-11-01 5 views
0

私はアンドロイドでParseを使用しています。配列に値(ObjectId)が含まれているかどうかを確認しようとしています。アプリを実行している間、私はこのエラーParse Arrayに値が含まれているかどうかをチェックしてください。android

"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

私は "java.lang.NullPointerException:仮想メソッド 'org.json.JSONArray com.parse.ParseObject.getJSONArray(java.lang.String)'をnullオブジェクト参照で呼び出しようとしています"上記のコードを使用している場合。 – Loyal

答えて

0

または、あなたはおそらく意味

object = all; 

この行を削除しました

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

} 

all = object

次に、toStringではなく、JSONArrayをループする必要があります。それが存在する場合、この方法

String optString(int index, String fallback)
を使用

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

は、必要に応じて強制する、 インデックスの値を返します。

関連する問題