2014-12-04 43 views
0

我目前使用Parse.com的API的Android应用程序。我想从一个数组中解析出一个数组并将其保存为一个列表,以便稍后使用。但问题是当我不在查询列表turnes空。你能帮我吗?cannnot保存分析查询的结果在一个android variabe

ParseUser currentUser = ParseUser.getCurrentUser(); 
 
     String userId= currentUser.getObjectId(); 
 
     final ParseQuery<ParseObject> pQuery = ParseQuery.getQuery("Friendship"); 
 
     pQuery.whereEqualTo("user", userId); 
 
     pQuery.findInBackground(new FindCallback<ParseObject>() { 
 
      @Override 
 
      public void done(List<ParseObject> list, ParseException e) { 
 
       if (e==null) { 
 
        if (list.size()>0) { 
 
         ParseObject p = list.get(0); 
 
         if (p.getList("friendsList")!=null) { 
 
          list11 = p.getList("friendsList"); 
 
          Toast.makeText(getActivity().getApplicationContext(), 
 
            "Posted With Success "+ list11.get(2).toString(), 
 
            Toast.LENGTH_LONG).show(); 
 
         } 
 
        } 
 
       } 
 
      } 
 
     }); 
 
     Toast.makeText(getActivity().getApplicationContext(), 
 
       "Posted With Success "+list11.get(1).toString(), 
 
       Toast.LENGTH_LONG).show();

先敬酒是工作,但第二个给了我一个NullPointerException。

+0

把列表抛回到活动的方法?它的外观现在变成了一个局部变量。 – 2014-12-04 14:03:41

+0

实际上,我正在使用片段,我已经将list11定义为全局变量,然后我试图用查询结果填充它。我没有成功:(我triyed把这个代码每一个地方(关于创建方法,在RemoteDataTask ...)列表 list11 = new ArrayList (); – 2014-12-04 22:29:38

+0

也许这是你的数据然后,你打电话给第二个你的数组的位置,但它是保证被填充? – 2014-12-05 08:45:37

回答

1

你只能把第二吐司中完成的方法是这样的: -

@Override 
     public void done(List<ParseObject> list, ParseException e) { 
      if (e==null) { 
       if (list.size()>0) { 
        ParseObject p = list.get(0); 
        if (p.getList("friendsList")!=null) { 
         list11 = p.getList("friendsList"); 
         Toast.makeText(getActivity().getApplicationContext(), 
           "Posted With Success "+ list11.get(2).toString(), 
           Toast.LENGTH_LONG).show(); 
         Toast.makeText(getActivity().getApplicationContext(), 
           "Posted With Success "+list11.get(1).toString(), 
           Toast.LENGTH_LONG).show(); 

        } 
       } 
      } 
     } 

因为findInBackground方法来启动一个新的背景thread.when您展示第二敬酒然后list11可能是空的。由于这个原因它抛出一个空指针异常

+0

你的意思是说,list11不会在查询后丢失数据,并且这个故事是由关于线程的故事引起的!好吧thx很多,我会尝试重用list11并告诉你结果 – 2014-12-05 12:36:53

相关问题