解析查询的 NullPointerException

NullPointerException for Parse Query

我基本上是在询问当前用户的 "gender",然后将微调器的选择设置为该值。一切正常。问题是我最近才引入了新的性别字段,所以所有老用户都没有在该行中指定值,这会导致 NullPointer。

我该如何正确解决这个问题?我的空检查似乎不起作用。可能是什么?

(编辑)解决方案:最终答案如下所示:

// Initiate ParseQuery
        ParseUser currentUser = ParseUser.getCurrentUser();
        if (currentUser != null) {
            if (currentUser.getString("gender") == null) {
                return;
            }
        }

        String compareValue;
        compareValue = currentUser.getString("gender");
        if (!(compareValue == null)) {
            int spinnerPosition = adapter.getPosition(compareValue);
            spinner.setSelection(spinnerPosition);
        } else {
            spinner.setSelection(0);
        }
Check 

if ( currentUser == null && currentUser.get("gender") == null)
{
     return;
}

instead of this...

if(currentUser == null) {
    return;
}

用户通过身份验证后,您可以获得如下值。不要做 toString() 你的 parseObject。

ParseUser currentUser = ParseUser.getCurrentUser();

if (currentUser != null) {
    Log.e("currentUser" , ""+currentUser);
    String username = user.getString("username");
    String gender = user.getString("gender");
} else {
    // show the signup or login screen
}

希望它能解决您的问题。

您还可以指定默认性别(对于老用户,因为它现在是必填字段)以避免 NullPointer Exception