For my Android app, I have subclassed ParseObject to create Food, Pref classes and CustomUser class which extends ParseUser and created a relation "lovers" between 'Food' and 'Users'.
Inside a CustomUser object, I have stored an Pref object using createWithoutData method in key "pref".CustomUser and its respective Pref object have one-to-one mapping
So when I want to display all lovers of a particular food in a listview using ParseQueryAdapter,
ParseQueryAdapter<ParseObject> adapter = new ParseQueryAdapter<ParseObject>(getActivity(),
new ParseQueryAdapter.QueryFactory<ParseObject>() {
public ParseQuery<ParseObject> create() {
ParseQuery<ParseObject> query = food.getRelation("lovers").getQuery();
query.selectKeys(Arrays.asList("pref");
return query;
}
});
adapter.setTextKey(Pref.COLUMN_PROFILE_NAME); adapter.setImageKey(Pref.COLUMN_PROFILE_PIC_THUMB);
fyi, COLUMN_PROFILE_NAME = "profileName", COLUMN_PROFILE_PIC_THUMB = "profileThumb"
Now the problem is that "pref" is only a reference to the actual object. So when the listView tries to get text and image, it says "ParseObject has no data for this key. Call fetchIfNeeded() to get the data"
My objective is to pass a query to ParseQueryAdapter that will fetch all pref objects nested inside CustomUsers having 'lovers' relation with that particular food.
The parse docs say that 'include' method does not work on relations.
Please help, I have been struggling on this for long now.