ParseQueryAdapter в синтаксическом анализе списка и отношениях «многие ко многим» [Parse.com]

Я разрабатываю приложение для Android, и мне очень понравился синтаксический анализ, и я планирую снова использовать его в будущих проектах. Итак, это приложение — мой старший проект...

1-й. Я попробовал отношение «_User» «многие ко многим», но не смог понять запросы или не смог успешно добавить другого пользователя в существующее отношение пользователя.

2-й. Я создал класс ParseObject «контакт», указывающий на каждого пользователя, указывающего на его создателя, и я мог успешно добавлять другие контакты в контакт, это отношение «контакт к контакту», и я назвал его «имеет»

3-й. И теперь я вижу отношение в своем браузере данных, и все, включая (создание, обновление, удаление, получение), идет отлично... НО МОЯ ПРОБЛЕМА №4!

4-й. У меня есть класс, который расширяет ListFragment, и я хочу запросить контакты в моем "контактном" отношении для ParseQueryAdapter... Я перепробовал все методы и либо получаю исключение нулевого указателя, либо мое приложение аварийно завершает работу...

Я могу показать все контакты, используя эту строку кода:

Адаптер ParseQueryAdapter = новый ParseQueryAdapter(getActivity(), MyContactClass.class);

Но попробовал все запросы в реляционных учебниках, и это не сработало... Я понимаю логику Parse, но не могу понять реализацию кода...

[Контакт] имеет ---> [Список}...... Я хочу получить этот список, какой-нибудь пример кода Java для этого?

ПОЖАЛУЙСТА И СПАСИБО :) Я никогда не задаю вопросов, если я не в отчаянии...


person Owehbeh    schedule 05.03.2014    source источник
comment
Хороший пример моделирования отношений «многие ко многим» можно найти в учебнике Anypic Parse. Я думаю, что то, как они используют активность, может быть хорошим решением и для вашего варианта использования.   -  person Marius Waldal    schedule 05.03.2014


Ответы (2)


Я смог решить эту проблему, НЕ используя метод getInBackground (с обратным вызовом)... Я изменил код следующим образом:

ParseQueryAdapter<ParseObject> adapter = new ParseQueryAdapter<ParseObject>(getActivity(), new ParseQueryAdapter.QueryFactory<ParseObject>() {public ParseQuery<ParseObject> create() {
                                  // Here we can configure a ParseQuery to our heart's desire.

                                    final ParseQuery<ParseObject> cUser = ParseQuery.getQuery("contact");


                                    ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("contact");
                                    try 
                                    {
                                        query=cUser.get("MyObjectIdGoesHere").getRelation("has").getQuery();
                                    } catch (ParseException e) 
                                    {
                                        e.printStackTrace();
                                    }
                                  return query;

                                }
                              });


        adapter.setTextKey("screenName");
        setListAdapter(adapter);

Это было очень неприятно, и я надеюсь, что кому-то будет полезно решение, которое соответствует моему коду...

person Owehbeh    schedule 05.03.2014

Жаль это слышать. Случайно у меня был открыт Parse Android Anywall Project вместе с моим проектом. В этом примере проекта следующий код может помочь в достижении вашей цели.

Я пытался размещать коды здесь, не могу пройти требования форматирования stackoverflow.

person Liangjun    schedule 08.05.2014