Parse查询的NullPointerException

时间:2015-10-30 04:02:49

标签: java android parse-platform android-spinner

我基本上要求当前用户的“性别”,然后将微调器的选择设置为该值。这一切都很好。问题是我最近才引入了新的性别字段,因此所有旧用户都没有在该行中指定的值并导致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);
        }

2 个答案:

答案 0 :(得分:1)

Check 

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

instead of this...

if(currentUser == null) {
    return;
}

答案 1 :(得分:1)

用户通过身份验证后,您可以获得如下所示的值。不要使用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异常