类android.support.v7.widget.util.SortedListAdapterCallback源码实例Demo

下面列出了怎么用android.support.v7.widget.util.SortedListAdapterCallback的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: AutoAdapter   文件: SortedAdapterDataStructure.java
public SortedAdapterDataStructure(@NonNull final SortedAutoAdapter autoAdapter) {
    super(OrderableRenderer.class, new SortedListAdapterCallback<OrderableRenderer>(autoAdapter) {
        @Override
        public int compare(OrderableRenderer o1, OrderableRenderer o2) {
            return autoAdapter.compare(o1, o2);
        }

        @Override
        public boolean areContentsTheSame(OrderableRenderer oldItem, OrderableRenderer newItem) {
            return autoAdapter.areContentsTheSame(oldItem, newItem);
        }

        @Override
        public boolean areItemsTheSame(OrderableRenderer item1, OrderableRenderer item2) {
            return autoAdapter.areItemsTheSame(item1, item2);
        }
    });
}
 
源代码2 项目: Game-of-Thrones   文件: SortedMessageCollection.java
public SortedMessageCollection(RecyclerView.Adapter adapter) {
  messageList = new SortedList<Message>(Message.class, new SortedListAdapterCallback<Message>(adapter) {
    @Override
    public int compare(Message o1, Message o2) {
      return o1.compareTo(o2);
    }

    @Override
    public boolean areContentsTheSame(Message oldItem, Message newItem) {
      return oldItem.equals(newItem);
    }

    @Override
    public boolean areItemsTheSame(Message item1, Message item2) {
      return item1.getId().equals(item2.getId());
    }
  });
}
 
源代码3 项目: materialize   文件: FilteredSortedListAdapter.java
public FilteredSortedListAdapter(Class<T> type, FilteredSortedList.Filter<T> filter) {
    this.data = new FilteredSortedList<>(type, new SortedListAdapterCallback<T>(this) {
        @Override
        public int compare(T lhs, T rhs) {
            return FilteredSortedListAdapter.this.compare(lhs, rhs);
        }

        @Override
        public boolean areContentsTheSame(T oldItem, T newItem) {
            return FilteredSortedListAdapter.this.areContentsTheSame(oldItem, newItem);
        }

        @Override
        public boolean areItemsTheSame(T item1, T item2) {
            return FilteredSortedListAdapter.this.areItemsTheSame(item1, item2);
        }
    }, filter);
}
 
public FeedAdapter(Context context) {
    mLayoutInflater = LayoutInflater.from(context);
    mList = new SortedList<>(FeedItem.class,
            new SortedListAdapterCallback<FeedItem>(this) {
                @Override
                public int compare(FeedItem o1, FeedItem o2) {
                    Post p2 = o2.getPost();
                    Post p1 = o1.getPost();
                    if (p1.isPending() != p2.isPending()) {
                        return p1.isPending() ? -1 : 1;
                    }
                    return (int) (p2.getCreated() - p1.getCreated());
                }

                @SuppressWarnings("SimplifiableIfStatement")
                @Override
                public boolean areContentsTheSame(FeedItem oldItem,
                        FeedItem newItem) {
                    Post oldPost = oldItem.getPost();
                    Post newPost = newItem.getPost();
                    if (oldPost.getId() != newPost.getId()) {
                        return false;
                    }
                    if (!oldPost.getText().equals(newPost.getText())) {
                        return false;
                    }
                    if (!oldItem.getUser().getName().equals(newItem.getUser().getName())) {
                        return false;
                    }
                    return oldItem.getPost().isPending() == newItem.getPost().isPending();
                }

                @Override
                public boolean areItemsTheSame(FeedItem item1, FeedItem item2) {
                    return item1.getPost().getId() == item2.getPost().getId();
                }
            });
}
 
 类方法
 同包方法