2017-04-27 157 views
0

我有2個對象,像這樣的有關係:創建RealmRecyclerView的境界關係對象

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; 
} 

這是我RecyclerView適配器:

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; 
} 

} 

在OnBindViewHolder我想任務,與活動的名稱,這是持有人我有3個textview。

@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); 
} 

但我總是得到錯誤,我錯了嗎?爲任務創建RecyclerView,因爲RealmList在活動中? 我想在我的任務活動中顯示此RecyclerView,而不是在活動活動中顯示。 幫我:(

+0

'我總是得到錯誤,我錯了?'定義「呃ror「 – EpicPandaForce

+0

btw我不明白你想要顯示什麼。 – EpicPandaForce

+0

我有一個任務活動,這是我保存在任務對象中,任務對象與活動有關係,我想爲任務創建一個回收者視圖,並且還可以查看與該任務有關的活動的名稱。 – AufaDhiya

回答

0

要顯示鏈接到指定TaskActivity,您可能需要一個雙向鏈接(鏈接使本來Activity activity;也一樣),或者可以定義鏈接對象Task作爲的Task(境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; 
} 

然後

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()); 
    } 
}