Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于数据库属性返回getItemViewType_Java_Android_Parse Platform_Android Recyclerview - Fatal编程技术网

Java 基于数据库属性返回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

我有一个异构回收器视图适配器,它根据提要项的类型显示不同的viewholder

除了布局XML之外,这些视图类型之间的唯一区别是数据库中名为notificationType(String)的列,它指定值“typeLike”或“typeComment”

我想根据该列中的值在这里返回项目类型,因为布局将根据通知是“like”还是“comment”而有所不同。我应该在getItemViewType中放置查询吗

@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。你可能想退房。干杯