2016-04-16 12 views
1

私は子供の名前と年齢を入力するアプリケーションで作業しており、入力に応じて特定のデータが表示されます。ローカルデータストア内に子情報を格納します。私は子供という名前ChildInfoクラスのリストを持っている `パブリッククラスAndroid Parseローカルデータストアが空に戻ります

ChildInfo { 
 

 
    public String name; 
 
    public String gradeLevel; 
 
    public int gradeLevelInt; 
 

 
    public ChildInfo() { 
 

 
    } 
 
    public ChildInfo(String _name, String _gradeLevel, int _gradeLevelInt) { 
 
     gradeLevel = _gradeLevel; 
 
     name = _name; 
 
    } 
 
}

私の主なフラグメント内側:

は、単純なストレージのために作られた、この単純なクラスを見てみましょう。

私はそうのようにそれらを呼び出す:

ParseQuery query = new ParseQuery("Child"); 
 
     query.fromLocalDatastore(); 
 
     query.findInBackground(new FindCallback<ParseObject>() { 
 
      @Override 
 
      public void done(List<ParseObject> objects, ParseException e) { 
 
       if (e == null) { 
 
        children.clear(); //Clear it out before we regen every person! 
 
        for (int i = 0; i < objects.size(); i++) { 
 
         ChildInfo child = new ChildInfo(); 
 
         child.name = objects.get(i).getString("Name"); 
 
         child.gradeLevel = objects.get(i).getString("GradeLevel"); 
 
         child.gradeLevelInt = objects.get(i).getInt("GradeLevelInt"); 
 
         children.add(child); 
 
        } 
 
        for (int i = pagerAdapter.getCount() - 1; i > 0; i--){ pagerAdapter.removeView(pager, i); } //Removes all pages. 
 
       } else { 
 
        Log.e("HomeScreen", e.toString()); 
 
       } 
 
      } 
 
     });

質問

このコードは動作しますが、半分の時間。 onViewCreatedメソッドでクエリを実行すると、何も返されません。 object.sizeはゼロですが、別のページを入力してこのフラグメントに戻ると、onResumeメソッドで呼び出されたときに動作します。何か案は?私はこれが解析APIのバグかもしれないと思う。

答えて

0

いいえ。私は修正を見つけた!何らかの理由で、完了したメソッドを終了すると、子リストに追加されたすべてが失われます。私は、コードを配置し直し、これは新しいParse.comクエリ

ParseQuery query = new ParseQuery("Child"); 
 
     query.fromLocalDatastore(); 
 
     query.findInBackground(new FindCallback<ParseObject>() { 
 
      @Override 
 
      public void done(List<ParseObject> objects, ParseException e) { 
 
       if (e == null) { 
 
        removeAllViews(pager); 
 
        children.clear(); //Clear it out before we regen every person! 
 
        for (int i = 0; i < objects.size(); i++) { 
 
         ChildInfo child = new ChildInfo(); 
 
         child.name = objects.get(i).getString("Name"); 
 
         child.gradeLevel = objects.get(i).getString("GradeLevel"); 
 
         child.gradeLevelInt = objects.get(i).getInt("GradeLevelInt"); 
 
         children.add(child); 
 
        } 
 
        Log.i("HomePagerAdapter", "Children Size: " + children.size() + "\n  Obj Size: " + objects.size()); 
 
        for (int i = 0; i < children.size(); i++) { 
 
         addChild(pager, children.get(i).name, children.get(i).gradeLevelInt); 
 
        } 
 
       } else { 
 
        Log.e("HomePagerAdapter", e.toString()); 
 
       } 
 
      } 
 
     });

です
関連する問題