Android parse.com检查对象是否存在

时间:2015-12-06 16:17:10

标签: android parse-platform

我在我当前的应用程序中遇到问题,该应用程序包含跟随/关注系统,当我查看用户profil时,如果我已经关注此用户,我想要检索信息。这是我的代码

private class CheckinIfFollowing extends AsyncTask<Void, Void, Void> {
                @Override
                protected void onPreExecute() {
                    super.onPreExecute();
                     //preexcution
                }

                @Override
                protected Void doInBackground(Void... params) {
                    ParseQuery<ParseObject> query = ParseQuery.getQuery("Follow");
                    query.whereEqualTo("from", ParseUser.getCurrentUser());
                    query.whereEqualTo("to", userId);
                    query.getFirstInBackground(new GetCallback<ParseObject>() {
                        @Override
                        public void done(ParseObject object, ParseException e) {
                            if(e==null){
                                Toast.makeText(UserProfil.this, "blue", Toast.LENGTH_SHORT).show();
                                //btn_follow.setButtonColor(getResources().getColor(R.color.bleu));
                            }else{
                            if(e.getCode() == ParseException.OBJECT_NOT_FOUND)
                                  {
                                Toast.makeText(UserProfil.this, "pink", Toast.LENGTH_SHORT).show();
                                //btn_follow.setButtonColor(getResources().getColor(R.color.pink));  
                                  }
                                  else
                                  {
                                  //unknown error, debug
                                  }
                                 }


                        }
                    });

            return null;
                }

                @Override
                protected void onPostExecute(Void result) {
                //  followingButton(AlreadyFollowing);
                //  btn_follow.setClickable(true);
                }
                }

我正在执行AsyncTask但屏幕上没有显示任何内容。

顺便说一句,parse.com中Follow类的“from”和“to”列是指向_User的指针。

1 个答案:

答案 0 :(得分:0)

首先(与您的问题没有直接关系,只是一个观察者):如果您使用<something>InBackground查询方法,则不必放它位于AsyncTask内。它已经在后台执行了。在您的情况下,您基本上(在这里简化一点)从异步任务执行异步任务。

虽然您没有说明userId对象中存储的内容,但我假设(基于它的名称)它是{{ 1}} objectId个对象和一个ParseUser个对象本身。我相信这是你的问题的原因。这条线确切地说:

ParseUser

你说:

  

来自&#34;来自&#34;和&#34;到&#34; parse.com中Follow类的列是   指向_User的指针。

如果您要将query.whereEqualTo("to", userId); 存储到另一个Pointer,如果您在查询中使用此字段,则可能应该传递此类型的对象(并且不是 ParseObject - objectId)。因此,在您的情况下,您应该传递String的实例而不是ParseUser

您可以使用objectId ParseObject方法创建可用于查询的对象(objectId)。