2017-04-27 3 views
0

ich habe 2 Objekt, und die haben Beziehung wie folgt aus:erstellen RealmRecyclerView für Realm Relational Object

public class Acitivities extends RealmObject{ 
    @PrimaryKey 
    int id; 
    String nameActivity; 
    RealmList<Task> Task; 
} 

public class Task extends RealmObject{ 
    @PrimaryKey 
    int id; 
    String nameTask; 
    String Description; 
} 

Und das ist mein RecyclerView Adapter:

public class CustomRealmAdapter extends RealmRecyclerViewAdapter<Task, 
    CustomRealmAdapter.MyViewHolder>{ 
    OrderedRealmCollection<Task> data; 
    RealmResult<Task> task; 
    RealmResult<Activities> activities; 

public CustomRealmAdapter(OrderedRealmCollection<Task> data, 
    RealmResult<Task> task){ 
    super(data,true); 
    this.data = data; 
    this.task = task; 
} 

} 

bei OnBindViewHolder ich will Aufgabe bekommen, mit dem Namen der Aktivitäten, die in Halter ist, habe ich 3 Textansicht.

@Override 
    public void onBindViewHolder(final MyViewHolder holder, final int position) { 
    final Task tsk = task.ge(position); 
    holder.nameActivity.setText(activities.getNameActivity); 
    holder.nameTask.setText(tsk.getNameTask); 
    holder.Description.setText(tsk.getDescription); 
} 

aber ich bekomme immer Fehler, bin ich falsch? Erstellen Sie RecyclerView for Task, weil sich die RealmList in Aktivitäten befindet? Ich möchte diese RecyclerView in meiner Aufgabenaktivität, nicht in der Aktivitätenaktivität anzeigen. Help me :(

+0

'ich immer Fehler bekommen, bin ich falsch?' definieren „er ror " – EpicPandaForce

+0

BTW Ich verstehe nicht, was genau Sie anzeigen möchten. – EpicPandaForce

+0

Ich habe eine Aufgabenaktivität, die ich im Aufgabenobjekt speichere, und Aufgabenobjekt haben eine Beziehung mit Aktivitäten, ich möchte eine Recycleransicht für Aufgabe erstellen und kann auch den Namen der Aktivität anzeigen, die eine Beziehung zu dieser Aufgabe hat. – AufaDhiya

Antwort

0

Um die Activity anzuzeigen, die zu einem bestimmten Task verbunden ist, benötigen Sie entweder eine bidirektionale Verbindung (so Link-Activity activity; auch haben würde), oder Sie können die Verknüpfungsobjekte zu Task als definieren Gebiet der Task (Realm 3.1+).

public class Acitivities extends RealmObject{ 
    @PrimaryKey 
    int id; 
    String nameActivity; 
    RealmList<Task> Task; 
} 

public class Task extends RealmObject{ 
    @PrimaryKey 
    int id; 
    String nameTask; 
    String Description; 
    @LinkingObjects("Task") 
    final RealmResults<Acitivities> activity = null; 
} 

Dann

public class CustomRealmAdapter extends RealmRecyclerViewAdapter<Task, 
     CustomRealmAdapter.MyViewHolder>{ 

    public CustomRealmAdapter(OrderedRealmCollection<Task> data){ 
     super(data,true); 
    } 
    @Override 
    public void onBindViewHolder(final MyViewHolder holder, final int position) { 
     final Task tsk = getData().get(position); 
     holder.nameActivity.setText(tsk.activity.get(0).getNameActivity()); 
     holder.nameTask.setText(tsk.getNameTask()); 
     holder.Description.setText(tsk.getDescription()); 
    } 
} 
Verwandte Themen