访问Parse.com用户表中的自定义列,返回null

时间:2015-03-01 07:20:46

标签: android parse-platform

我正在尝试检索一个名为" address"的新列。我在我的Android应用程序中创建了Parse用户。但它返回nullPopinterException错误并返回我没有,虽然我填写表中的地址。
link仅显示将自定义字段存储在用户表中的方法,但我需要检索存储在那里的内容。
这是我的代码:

ParseUser pUser = ParseUser.getCurrentUser();
userAddress.setText(pUser.getString("address").toString());

我也试过get("address"),但它仍然没有给我任何回报。我在这里找不到什么东西?

3 个答案:

答案 0 :(得分:1)

好吧,我自己找到了答案。事实证明,Parse在本地缓存ParseUser.getCurrentUser()对象,而我无法从服务器获取数据的原因是因为我更改了服务器上的数据并且未更新客户端缓存。 我能够通过从服务器获取ParseUser对象来解决这个问题:

ParseUser.getCurrentUser().fetchInBackground();

然后在从服务器检索到对象后,我能够在我的客户端上获取地址字段。

答案 1 :(得分:0)

您需要使用Query调用它,然后在textView / editText中显示它。请尝试以下方法:

final ParseQuery<ParseObject> address = ParseQuery.getQuery("//Class Name");
    address.getFirstInBackground(new GetCallback<ParseObject>() {

        public void done(ParseObject reqAdd, ParseException e) {

            if (address != null) {
                Log.d("quizOne", "Got it");
                //Retrieve Age
                String //CreateNewString = reqAdd.getString("//Column name");
                TextView //textView Name = (TextView) findViewById(R.id.//textView ID);
                //textViewName.setText(//StringName);
                Toast.makeText(getApplicationContext(),
                        "Successfully Recieved Address",
                        Toast.LENGTH_LONG).show();


            } else {
                Log.d("//EnterName", "//Enter Error Message");
                Toast.makeText(getApplicationContext(),
                        "Can't receive address", Toast.LENGTH_LONG)
                        .show();
            }
        }
    });

答案 2 :(得分:-1)

简短回答:该用户可能只是没有设置地址。

答案很长:你的代码片段会经常抛出异常,你应该期望并处理它们,或者使用测试来避免抛出异常。

阅读本页:http://en.wikibooks.org/wiki/Java_Programming/Preventing_NullPointerException

关键示例/摘录:

Object obj = null;
obj.toString();  // This statement will throw a NullPointerExcept

所以pUser.getString(&#34;地址&#34;)看起来是正确的。但是在结果上调用.toString()需要您尝试/捕获异常。也许做

ParseUser pUser = ParseUser.getCurrentUser();
if (pUser.getString("address") != null) {
    userAddress.setText(pUser.getString("address"));
}
顺便说一句,我相信错误是&#34; nullPointerException&#34;仅供参考! :)