【问题标题】:Retrieving data from Parse.com to ArrayList<Object>从 Parse.com 检索数据到 ArrayList<Object>
【发布时间】:2016-06-15 19:17:18
【问题描述】:

我必须尝试将 Data 下载到 ArrayList 中。当我在 done() 方法中调用它时没关系,但是当我在 done() 之外调用它时,它将为空。我该如何解决?

        ParseQuery<ParseObject> query = ParseQuery.getQuery("code");
    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> provineList, ParseException e) {
            if (e == null) {
                for (ParseObject mProvine : provineList) {
                    Provine provine = new Provine();
                    provine.setPro((String) mProvine.get("provine"));
                    provine.setNumber((String) mProvine.get("code_number"));
                    provines.add(provine);
                    Log.d("All provine", provines.get(i).getPro()); (it's ok, no problem).
                    i++;
                }
            } else
                Log.d("Provines", "Error: " + e.getMessage());
            }
        }
    });
Log.d("All provine", provines.get(0).getPro()); (it's null ).

【问题讨论】:

    标签: android parse-platform local-datastore


    【解决方案1】:

    你可以声明一个继承ParseObject的子类。

    在调用Parse.initialize() 之前,在您的应用程序构造函数中调用ParseObject.registerSubclass(YourClass.class)

    关注这个Subclasseshttps://www.parse.com/docs/android/guide#objects-subclassing-parseobject

          // Armor.java
        import com.parse.ParseObject;
        import com.parse.ParseClassName;
    
        @ParseClassName("Armor")
        public class Armor extends ParseObject {
        }
    
        // App.java
        import com.parse.Parse;
        import android.app.Application;
    
        public class App extends Application {
          @Override
          public void onCreate() {
            super.onCreate();
    
            ParseObject.registerSubclass(Armor.class);
            Parse.initialize(this, PARSE_APPLICATION_ID, PARSE_CLIENT_KEY);
          }
        }
    

    在查询时,您会以 ArrayList 的形式获得该数据。

    ParseQuery<Armor> query = ParseQuery.getQuery(Armor.class);
    query.whereLessThanOrEqualTo("rupees", ParseUser.getCurrentUser().get("rupees"));
    query.findInBackground(new FindCallback<Armor>() {
      @Override
      public void done(List<Armor> results, ParseException e) {
    
        // here you can use results same as object model.
    
    
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      • 2015-09-26
      • 2017-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多