2014-08-28 17 views
7

W mojej obecnej klasie powiedzmy A, mam kolumnę, która jest wskaźnikiem do innej klasy, powiedzmy B. Czy ktoś może dać mi znać, jak mogę ustawić wartość dla tej kolumny w systemie Android?Parse: Jak ustawić wskaźnik w systemie Android?

Próbowałem pobierania wymaganego wiersz z klasy B jako ParseObject i robi:

classAObject.put("column_name",classBParseObject); 

Ale to jest tylko tworzenie pustego wiersza w klasie A, bez żadnych wskazówek. Każda pomoc w tym zakresie jest bardzo doceniana.

+0

Cześć, tam. Jakie jest zastosowanie wskaźnika do klasy B? :) –

+0

To jest jak klucz obcy. Ta kolumna wskazuje na konkretny wiersz klasy B, oparty na kluczu podstawowym. –

+0

Okay świetnie. Więc w swoim kodzie Android (na razie zapomnij Parse), w jaki sposób przechowujesz ten klucz dla B? –

Odpowiedz

14

Jeśli masz identyfikator obiektu ID kursu dla informatyki, musisz zapisać używając metody createWithoutData. Więc podsumujmy: Masz tabelę Ucznia z kolumną o nazwie CourseId - jest to wskaźnik do tabeli Course, a nie do kolumny CourseId tabeli Course. Nie możesz wskazać kolumny, wskazujesz stół.

Tak więc po utworzeniu nowego obiektu Ucznia należy zapisać wskaźnik w kolumnie "Pole danych" dla informatyki. Powiedzmy, że objectID obiektu Computer Science w tabeli Course to "xyz123". Można by zrobić następujące:

ParseObject student = new ParseObject("Student"); 
student.put("CourseId", ParseObject.createWithoutData("Course", "xyz123")); 
//...set other values for the student object 
student.saveInBackground(); 

docs analizowania ma co trzeba i więcej - sprawdź sekcję danych relacyjnych: https://parse.com/docs/android_guide#objects-pointers

+0

Mam coś dodatkowego do zadania na ten sam temat, w jaki sposób ktoś może ustawić wskaźnik na domyślny (nieokreślony) lub zerowy? – Matt

+0

Wielkie dzięki, googlowałem przez wiele godzin. – Anirudh

+0

@ user2163298 Jak mogę zrobić, jeśli zapisuję Użytkownicy w tabeli użytkownika intead obiektu, ponieważ mam zapisać tabelę użytkownika w tabeli instalacji przy użyciu parse.com w Androidzie – Erum

5

Jeśli jest to klasa zwyczaj następnie użyć następującego kodu (np „AnotherClass” jest klasą zwyczaj)

classAObject.put("column_name", ParseObject.createWithoutData("AnotherClass", "abc123")); 

lub jeśli jest Parse klasy jak użytkownika, instalacje itp używać tak,

classAObject.put("column_name", ParseObject.createWithoutData(ParseUser.class, "abc123")); 
+0

Dziękuję za tę odpowiedź. Wyciągałam włosy, próbując dowiedzieć się, jak uzyskać wskaźnik do mojego stołu instalacyjnego. Druga opcja była kluczem! –

+0

Jesteś niesamowity Thankyou tak dużo –

+0

Możesz także zrobić Parse.User.createWithoutData (userObject.objectId) –

Powiązane problemy