Java 实施";添加到“收藏夹”中;RecyclerView中的机制

Java 实施";添加到“收藏夹”中;RecyclerView中的机制,java,android,android-recyclerview,Java,Android,Android Recyclerview,我有一个包含两个部分的recyclerView常规和收藏夹,用于填充我的recyclerView我有列表我的对象类: public class Object { String id,channelName; boolean isFavorite; } 现在我想把isfavorite==true的值放在recyclerView的顶部,放在favorite部分中,但我不知道从哪里开始,也不知道该做什么?我必须用布尔值对列表进行排序吗?如果有人能给我一点提示或指导,那对我会很有帮助 为了更好地理解,

我有一个包含两个部分的recyclerView
常规
收藏夹
,用于填充我的
recyclerView
我有
列表
我的
对象
类:

public class Object {
String id,channelName;
boolean isFavorite;
}
现在我想把
isfavorite==true
的值放在
recyclerView
的顶部,放在
favorite
部分中,但我不知道从哪里开始,也不知道该做什么?我必须用布尔值对
列表进行排序吗?如果有人能给我一点提示或指导,那对我会很有帮助

为了更好地理解,请使用此图像, 这就是我想要得到的

我通过公共类SimpleAdapter扩展了RecyclerView.Adapter在我的
RecyclerView
中添加了该部分{ 私有最终上下文mContext; 私有列表数据; 公共void add(字符串s,int位置){ 位置=位置==-1?getItemCount():位置; mData.add(位置,s); (位置); } 公共无效删除(内部位置){ if(位置
公共类SimpleAdapter扩展了RecyclerView.Adapter{
私有最终上下文mContext;
私有列表数据;
公共void add(字符串s,int位置){
位置=位置==-1?getItemCount():位置;
mData.add(位置,s);
(位置);
}
公共无效删除(内部位置){
if(位置
类数据模式
{
公共字符串标题;
公众最爱;
公共字符串getTitle(){
返回标题;
}
公共无效集合标题(字符串标题){
this.title=标题;
}
公共布尔值(){
回报是我的最爱;
}
public void setisfavorite(布尔值isfavorite){
this.isfavorite=isfavorite;
}
}
公共类SimpleAdapter扩展了RecyclerView.Adapter{
私有最终上下文mContext;
私有列表数据;
公共无效添加(数据模式s,整数位置){
位置=位置==-1?getItemCount():位置;
mData.add(位置,s);
(位置);
}
公共无效删除(内部位置){
if(位置public class SimpleAdapter extends RecyclerView.Adapter<SimpleAdapter.SimpleViewHolder> {

    private final Context mContext;
    private List<String> mData;

    public void add(String s,int position) {
        position = position == -1 ? getItemCount()  : position;
        mData.add(position,s);
        notifyItemInserted(position);
    }

    public void remove(int position){
        if (position < getItemCount()  ) {
            mData.remove(position);
            notifyItemRemoved(position);
        }
    }

    public static class SimpleViewHolder extends RecyclerView.ViewHolder {
        public final TextView title;

        public SimpleViewHolder(View view) {
            super(view);
            title = (TextView) view.findViewById(R.id.simple_text);
        }
    }

    public SimpleAdapter(Context context, String[] data) {
        mContext = context;
        if (data != null)
            mData = new ArrayList<String>(Arrays.asList(data));
        else mData = new ArrayList<String>();
    }

    public SimpleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        final View view = LayoutInflater.from(mContext).inflate(R.layout.simple_item, parent, false);
        return new SimpleViewHolder(view);
    }

    @Override
    public void onBindViewHolder(SimpleViewHolder holder, final int position) {
        holder.title.setText(mData.get(position));
        holder.title.setOnClickListener(new Listener(position,mData.get(position),false,favview));
    }

    class Listener implements View.OnClickListener
    {
    ImageView favoriteView;
    int position;
    Listener(int position,String Data,boolean isFavourite,ImageView favoriteView)
    {
    this.favoriteView = favoriteView;
    this.position = position;
    }
     @Override
            public void onClick(View view) {

            if(isFavourite)
            {
            //mark the view as unfavorite
            }
            else{
            //mark the view as favorite
            }

                Toast.makeText(mContext,"Position ="+position,Toast.LENGTH_SHORT).show();
            }
    }



    @Override
    public int getItemCount() {
        return mData.size();
    }
}
class DataModal
{
public String title;
public boolean isFavourite;

public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public boolean isFavourite() {
        return isFavourite;
    }

    public void setIsFavourite(boolean isFavourite) {
        this.isFavourite = isFavourite;
    }
}


public class SimpleAdapter extends RecyclerView.Adapter<SimpleAdapter.SimpleViewHolder> {

    private final Context mContext;
    private List<DataModal> mData;

    public void add(DataModal s,int position) {
        position = position == -1 ? getItemCount()  : position;
        mData.add(position,s);
        notifyItemInserted(position);
    }

    public void remove(int position){
        if (position < getItemCount()  ) {
            mData.remove(position);
            notifyItemRemoved(position);
        }
    }

    public static class SimpleViewHolder extends RecyclerView.ViewHolder {
        public final TextView title;

        public SimpleViewHolder(View view) {
            super(view);
            title = (TextView) view.findViewById(R.id.simple_text);
        }
    }

    public SimpleAdapter(Context context, ArrayList<DataModal> data) {
        mContext = context;
        if (data != null)
            mData = data;
        else mData = new ArrayList<DataModal>();
    }

    public SimpleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        final View view = LayoutInflater.from(mContext).inflate(R.layout.simple_item, parent, false);
        return new SimpleViewHolder(view);
    }

    @Override
    public void onBindViewHolder(SimpleViewHolder holder, final int position) {

    DataModal data = mData.get(position);
        holder.title.setText(data.getTitle());
        holder.title.setOnClickListener(new Listener(position,mData.get(position)));
    }

    class Listener implements View.OnClickListener
    {
    DataModal Data;
    int position;
    Listener(int position,DataModal Data)
    {
    this.Data = Data;
    this.position = position;
    }
     @Override
            public void onClick(View view) {

            if(Data.isFavourite())
            {
            //mark the view as unfavorite
            }
            else{
            //mark the view as favorite
            }

                Toast.makeText(mContext,"Position ="+position,Toast.LENGTH_SHORT).show();
            }
    }



    @Override
    public int getItemCount() {
        return mData.size();
    }
}