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