Java 基于数据库属性返回getItemViewType
我有一个异构回收器视图适配器,它根据提要项的类型显示不同的viewholder 除了布局XML之外,这些视图类型之间的唯一区别是数据库中名为notificationType(String)的列,它指定值“typeLike”或“typeComment” 我想根据该列中的值在这里返回项目类型,因为布局将根据通知是“like”还是“comment”而有所不同。我应该在getItemViewType中放置查询吗Java 基于数据库属性返回getItemViewType,java,android,parse-platform,android-recyclerview,Java,Android,Parse Platform,Android Recyclerview,我有一个异构回收器视图适配器,它根据提要项的类型显示不同的viewholder 除了布局XML之外,这些视图类型之间的唯一区别是数据库中名为notificationType(String)的列,它指定值“typeLike”或“typeComment” 我想根据该列中的值在这里返回项目类型,因为布局将根据通知是“like”还是“comment”而有所不同。我应该在getItemViewType中放置查询吗 @Override public void onBindViewHolder(Recycle
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
final ParseObject notifications = mNotifications.get(position);
switch (holder.getItemViewType(notifications)) {
case LIKE:
ViewHolder vh1 = (ViewHolder) holder;
configureViewHolder1(vh1, position);
break;
case COMMENT:
ViewHolder2 vh2 = (ViewHolder2) holder;
configureViewHolder2(vh2, position);
break;
default:
RecyclerViewSimpleTextViewHolder vh = (RecyclerViewSimpleTextViewHolder) holder;
configureDefaultViewHolder(vh, position);
break;
}
}
@Override
public int getItemViewType(ParseObject notifications) {
if (notifications.getString("notificationType").equals("typeLike")) {
return LIKE;
} else {
return COMMENT;
}
}
不幸的是,上面的代码没有从其超类重写。我应该怎么做?由于
getItemViewType
接受int position
,我可以在getItemViewType
方法中创建通知对象:
public int getItemViewType(int position) {
final ParseObject notifications = mNotifications.get(position);
if (notifications.getString("notificationType").equals("typeLike")) {
return LIKE;
} else {
return COMMENT;
}
}
这样,我就不会触及
onBindViewHolder
方法。我完全没有想到我可以在getItemViewType
中独立调用我的列表。这是pain mate。你可能想退房。干杯